Рассмотрим следующий сценарий:
Мой оркестратор O
запускается и вызывает суб-оркестратор S
. S
успешно обрабатывает действия A1
и A2
, но не выполняет A3
. У меня есть автоматические повторные попытки на A3
, но мне не повезло (веб-сервис, который я вызываю, выдает 404). Нет проблем, я перехватываю исключение и выполняю очистку для A1
и A2
.
В конце концов мне нужно повторить процесс. Как правильно это сделать?
Мой текущий подход заключался в том, чтобы написать сообщение в настраиваемую подозрительную очередь с задержкой видимости, а затем иметь другую функцию AZ, которая извлекает из этой очереди и перезапускает суб-оркестратор.
Также было бы идеально, если бы я мог перезапустить тот же суб-оркестратор с тем же идентификатором вызова. Теоретически это могло бы избавить меня от необходимости переделывать A1
и A2
, а также их очистку!
Это правильный образ мышления, или я неправильно использую долговечные функции?