我试图模拟我有一个Decider的情况,并且它下降了,无论是维护还是更新(我最终会为工作人员做这个,除非我只是移动它到Lambda)。无论如何,我注意到如果我关闭我的决策者,然后我开始执行(使用SWF控制台),然后启动我的决策者我从未收到任何Decision *事件。它就像永远迷失了。
我猜我错过了一些明显的东西。我正在使用boto3到poll_for_decision_task
http://boto3.readthedocs.org/en/latest/reference/services/swf.html#SWF.Client.poll_for_decision_task
是否还有一些其他的初步步骤,我应该采取任何以前执行的决定者在线上时没有看到的?
奖金问题:
有时,即使我让决策程序运行,并且它正在轮询决策任务,并且我从AWS控制台提交任务,也不会触发决策程序。
奖金奖励问题:
如果决策者得到执行事件,并且它执行StartTimer
,比如10秒,如果我在调度StartTimer之后退出决策程序,然后我重新启动决策程序,则TimerFired事件永远不会出现。
在两个奖励案例中,get_workflow_execution_history
表示执行存在。 (http://boto3.readthedocs.org/en/latest/reference/services/swf.html#SWF.Client.get_workflow_execution_history)
答案 0 :(得分:0)
如果问题是可用性,为什么不运行多个决策者?在安排决策任务时,SWF保证只能使用一次。
之前没有看到过迷失的决定。我经常会发现重新启动的决策者可能需要一些时间才能做出决定(最多60秒),如果你的计划调试时间超过60秒。不到60秒,然后它可能会在决策者得到它之前超时。
奖金问题: - 可能是很多事情,但是期望任务列表名称不匹配,或者选择它的决策延迟可能会触发超时。