指定超时之前的DecisionTaskTimedOut

时间:2019-06-13 18:04:10

标签: cadence-workflow

我有一种情况,当超时设置为10时,决策在5秒后超时:

  17  2019-06-13T17:46:59Z  DecisionTaskScheduled     {TaskList:{Name:maxim-C02XD0AAJGH6:db09fd84-98bf-4546-a0d8-fb51e30c2b41},
                                                      StartToCloseTimeoutSeconds:10, Attempt:0}
  18  2019-06-13T17:47:04Z  DecisionTaskTimedOut      {ScheduledEventId:17,
                                                      StartedEventId:0,
                                                      TimeoutType:SCHEDULE_TO_START}
10:49 AM

它正在使用在本地docker中运行的Cadence服务,我可以可靠地重现它。

1 个答案:

答案 0 :(得分:1)

5秒超时归因于 Cadence Sticky Execution 功能。默认情况下,Cadence Worker上启用了粘性执行功能,该功能允许在做出决定后将工作流状态缓存在worker上。这样,Cadence服务器就可以将新的决策任务直接分派给同一工作人员,从而可以重用缓存的状态并生成新的决策,而无需重播整个执行历史记录。

决定 SCHEDULE_TO_START 超时已设置为允许在工作人员重新启动且粘性任务列表上没有轮询程序用于工作流执行时将决定发送给其他工作人员。这将导致Cadence服务器清除该粘性,以将执行和决策分派到原始任务列表,以便其他任何工作人员都可以选择。

// Optional: Sticky schedule to start timeout.
// default: 5s
// The resolution is seconds. See details about StickyExecution on the comments for DisableStickyExecution.
StickyScheduleToStartTimeout time.Duration