0

我有一个案例,当超时设置为 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 服务,我可以可靠地重现它。

4

1 回答 1

1

5s 超时是由于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
于 2019-06-13T18:26:46.710 回答