Повторная попытка действия / оркестратора Durable Function позже

Рассмотрим следующий сценарий:

Мой оркестратор O запускается и вызывает суб-оркестратор S. S успешно обрабатывает действия A1 и A2, но не выполняет A3. У меня есть автоматические повторные попытки на A3, но мне не повезло (веб-сервис, который я вызываю, выдает 404). Нет проблем, я перехватываю исключение и выполняю очистку для A1 и A2.

В конце концов мне нужно повторить процесс. Как правильно это сделать?

Мой текущий подход заключался в том, чтобы написать сообщение в настраиваемую подозрительную очередь с задержкой видимости, а затем иметь другую функцию AZ, которая извлекает из этой очереди и перезапускает суб-оркестратор.

Также было бы идеально, если бы я мог перезапустить тот же суб-оркестратор с тем же идентификатором вызова. Теоретически это могло бы избавить меня от необходимости переделывать A1 и A2, а также их очистку!

Это правильный образ мышления, или я неправильно использую долговечные функции?


person MarkB    schedule 25.07.2019    source источник
comment
пожалуйста, опишите действия A1, A2, A3, и тогда мы сможем сказать вам, подходит ли ваша архитектура   -  person Alex Gordon    schedule 25.07.2019


Ответы (1)


Есть API - Перемотка экземпляров (предварительная версия) - которые, я думаю, вы можете использовать для этого. Чтобы использовать это, вам понадобится идентификатор экземпляра оркестрации.

У вас должна быть возможность запрос для неудачных экземпляров, фильтр на основе настраиваемый статус, а затем вызвать для них перемотку.

person PramodValavala-MSFT    schedule 29.07.2019
comment
Я разберусь с этим! Спасибо - person MarkB; 29.07.2019