【问题标题】:SWF Decider started AFTER workflow submitted never sees Decision EventsSWF 决策者在提交工作流后启动,从未看到决策事件
【发布时间】:2016-07-12 13:37:14
【问题描述】:

我正在尝试模拟我有一个决策者的情况,并且它出现故障,无论是维护还是更新(我最终也会为工作人员执行此操作,除非我只是将其移至 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)

【问题讨论】:

    标签: python amazon-web-services boto3 amazon-swf


    【解决方案1】:

    如果关注的是可用性,为什么不运行多个决策程序?当一个决策任务被调度时,SWF 保证它只能被使用一次。

    以前没有见过丢失的决策。我经常会发现重新启动的决策者可能需要一些时间来做出决定(最多 60 秒),如果您的“scheduleToStartTimeout”小于 60 秒,那么它可能会在决策者得到它之前超时。

    奖金问题: - 可能有很多问题,但预计 taskList 名称不匹配,或者决策者延迟提取它可能会触发超时。

    【讨论】:

      猜你喜欢
      • 2014-05-08
      • 2012-09-26
      • 2016-11-25
      • 2020-10-18
      • 2013-12-12
      相关资源
      最近更新 更多