我似乎无法找到很好的解释,如果有几个工作人员听同一个AWS步骤功能活动ARN会发生什么? 我主要对机制感兴趣,因为我正在探索如何将容错引入监听步骤函数活动的过程,这意味着如果一个工作者失败,另一个工人如何从活动任务中获取松弛?
如果有定义的模式 - 请分享: - )
谢谢!
答案 0 :(得分:1)
在另一次谈话中,我想我已经得到了这个问题的答案:
如果两个不同的AZ中有两个工作人员听同一个活动ARN,其中一个AZ在该工作人员能够获得taskToken之前停止工作,其他工作人员可以拿起它并开始工作在任务上。
在另一种情况下,如果AZ1中的工作人员选择了工作并且AZ1发生故障 - 该步骤最终会超时,但重试该步骤可能会迫使AZ2中的工作人员选择工作。
在某种意义上,步骤函数活动是一个任务队列。
答案 1 :(得分:0)
在你的工作人员中实施心脏跳动,这样如果工作人员失败,它将通过活动任务了解并且让另一个工人抓住它。
具有长时间运行活动的状态应提供心跳超时值,以验证活动是否仍在成功运行。
您可以向任务发送心跳更新。
如果您的活动具有心跳超时值,则实现它的工作人员必须向步骤功能发送心跳更新。要从工作人员发送心跳通知,请使用SendTaskHeartbeat操作。
如果此任务未能在其时间间隔内完成(如果已指定),或者未在定义的时间间隔内发送心跳通知,则该任务将标记为失败。您可以定义重试策略以再次尝试。
有关更多信息,请参阅AWS文档中的SendTaskHeartbeat部分。