Как перенести неудачный / зависший рабочий процесс на новую версию после исправленной ошибки? - PullRequest
0 голосов
/ 18 июня 2020

Насколько я понимаю, если ошибка была в Activity, будет использоваться новый код, поскольку Activity не имеет понятия версии. Но что, если в коде рабочего процесса есть ошибка, приводящая к сбою некоторых рабочих процессов (или, что еще хуже, не сбою, а к зависанию), мы исправили ошибку и развернули новую версию, но эти сбойные рабочие процессы застряли в старых версиях. Есть ли способ автоматически переместить эти неудачные / зависшие рабочие процессы в новую версию и повторно запустить их?

Это часто происходит с нами, потому что мы только начали учиться использовать Cadence / Temporal

Заранее спасибо!

1 Ответ

1 голос
/ 19 июня 2020

Это зависит от бага.

Для ошибок, которые приводят к зависанию рабочего процесса (в Go разыменование нулевого указателя вызывает pani c, который по умолчанию блокирует ход рабочего процесса), развертывания новой версии кода обычно достаточно, чтобы разблокировать их.

Если исправление требует обратно несовместимого изменения, то лучшим вариантом будет сброс рабочего процесса до точки, предшествующей ошибке. Таким образом, рабочий процесс будет отменен и продолжен с использованием нового кода.

В ситуации, когда сбой кода рабочего процесса вызван новой плохой сборкой, вы можете откатить рабочие процессы к предыдущей сборке и пометить эту сборку как сломанную и все рабочие процессы автоматически откатятся к своему состоянию до этой сборки. См. Раздел « Восстановление после неправильного развертывания » временной документации.

Если вы используете интеграцию ElasticSearch, вы также можете выполнить пакетный сброс нескольких рабочих процессов с помощью предиката для выбора рабочих процессов, соответствующих некоторым критерии. См. Раздел « Сигнал, отмена, завершение рабочих процессов как пакетное задание ». Помимо названия раздела, пакетные задания также применяются к операциям сброса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...