AWS Step Functions - 每个相同 activity ARN 的多个工作人员
AWS Step Functions - multiple workers per same activity ARN
我似乎无法很好地解释如果多个工作人员收听同一个 AWS 步骤函数会发生什么 activity ARN?
我主要对机制感兴趣,因为我正在探索如何将容错引入侦听步骤函数活动的进程,这意味着如果一个工作人员失败,另一个工作人员如何从 activity 任务中接手?
如果有定义的模式 - 请分享 :-)
谢谢!
在您的工作人员中实施心跳,这样如果工作人员失败,activity 任务就会知道它并允许另一个工作人员抓住它。
States that have long-running activities should provide a heartbeat timeout value to verify that the activity is still running successfully.
您可以向任务发送检测信号更新。
If your activity has a heartbeat timeout value, the worker which implements it must send heartbeat updates to Step Functions. To send a heartbeat notification from a worker, use the SendTaskHeartbeat action.
如果此任务未能在其时间间隔(如果指定)内完成,或者未在定义的时间间隔内发送心跳通知,则该任务将标记为失败。您可以定义重试策略来重试。
有关详细信息,请参阅 AWS 文档中的 SendTaskHeartbeat 部分。
在另一次谈话中,我想我找到了这个问题的答案:
在一种情况下,两个不同 AZ 中的两个 worker 收听相同的 activity ARN,并且其中一个 AZ 在该 AZ 中的 worker 能够获取 taskToken 之前发生故障,其他 worker 可以选择它启动并开始执行任务。
在另一种情况下,如果 AZ1 中的工作人员选择了工作并且 AZ1 出现故障 - 该步骤最终会超时,但重试该步骤可能会强制 AZ2 中的工作人员选择工作。
某种意义上step函数activity是一个任务队列。
我似乎无法很好地解释如果多个工作人员收听同一个 AWS 步骤函数会发生什么 activity ARN? 我主要对机制感兴趣,因为我正在探索如何将容错引入侦听步骤函数活动的进程,这意味着如果一个工作人员失败,另一个工作人员如何从 activity 任务中接手?
如果有定义的模式 - 请分享 :-)
谢谢!
在您的工作人员中实施心跳,这样如果工作人员失败,activity 任务就会知道它并允许另一个工作人员抓住它。
States that have long-running activities should provide a heartbeat timeout value to verify that the activity is still running successfully.
您可以向任务发送检测信号更新。
If your activity has a heartbeat timeout value, the worker which implements it must send heartbeat updates to Step Functions. To send a heartbeat notification from a worker, use the SendTaskHeartbeat action.
如果此任务未能在其时间间隔(如果指定)内完成,或者未在定义的时间间隔内发送心跳通知,则该任务将标记为失败。您可以定义重试策略来重试。
有关详细信息,请参阅 AWS 文档中的 SendTaskHeartbeat 部分。
在另一次谈话中,我想我找到了这个问题的答案:
在一种情况下,两个不同 AZ 中的两个 worker 收听相同的 activity ARN,并且其中一个 AZ 在该 AZ 中的 worker 能够获取 taskToken 之前发生故障,其他 worker 可以选择它启动并开始执行任务。
在另一种情况下,如果 AZ1 中的工作人员选择了工作并且 AZ1 出现故障 - 该步骤最终会超时,但重试该步骤可能会强制 AZ2 中的工作人员选择工作。
某种意义上step函数activity是一个任务队列。