DecisionTaskTimedOut до указанного времени ожидания - PullRequest
0 голосов
/ 13 июня 2019

У меня есть случай, когда время ожидания решения истекает через 5 секунд, когда тайм-аут установлен на 10:

  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

Он использует службу Cadence, работающую в локальном докере, и я могу надежно воспроизвести его.

1 Ответ

1 голос
/ 13 июня 2019

Тайм-аут 5 с из-за функции Cadence Sticky Execution . Sticky Execution по умолчанию включено в Cadence 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
...