#cadence-workflow #temporal-workflow
Вопрос:
Для данного рабочего процесса с действием A с максимальным количеством повторных попыток, равным 3, если у меня есть следующий фрагмент кода:
for (String type: types) {
activityA.process(type);
}
и типы в этом случае [«тип1», «тип2», «тип3»]
Так что, если ActivityA успешно обработал тип1 и начинает обрабатывать тип2 и по какой-то причине не удается,
- Будет ли политика повторных попыток для ActivityA применяться каждый раз при запуске типа или это будет 3 повторные попытки для всех типов действий?
- Если рабочий процесс завершится неудачно при выполнении type2, будет ли рабочий процесс перезапущен с самого начала и снова обработает type1 или он начнется с type2?
Ответ №1:
Для 1. Политика повторных попыток будет работать независимо для каждого действия. Таким образом, у каждого типа будет три повторных попытки.
Для 2. Сбой рабочего процесса-это конечное состояние для выполнения рабочего процесса. Это не будет повторяться автоматически, если вы не укажете политику повторных попыток при запуске рабочего процесса. При повторной попытке рабочего процесса. Все начнется с самого начала.
См. также https://cadenceworkflow.io/docs/concepts/workflows/#workflow-retries
Или, может быть, вы спросили, если рабочий выходит из строя вместо рабочего процесса? Каденция очень отказоустойчива к сбоям рабочего процесса, рабочий процесс автоматически возобновится с того, что он оставил до смерти предыдущего работника.
См. также https://cadenceworkflow.io/docs/concepts/workflows/#state-recovery-and-determinism