Опрос для внешних переходов состояний в рабочих процессах Cadence

У меня есть рабочий процесс Cadence, в котором мне нужно опрашивать внешний интерфейс AWS API до перехода конкретного ресурса, что может занять некоторое время. Я предполагаю, что должен сделать каждый отдельный запрос 'checkStatus' активным, и чтобы рабочий процесс выполнял цикл сна / проверки. Однако это означает, что у меня может быть неограниченное количество вызовов активности в моей истории рабочего процесса. Это беспокоит? Есть ли лучший способ сделать это?

1 ответ

Это зависит от того, как часто вы хотите опросить.

  • Для нечастых опросов (каждую минуту или медленнее) используйте попытку на стороне сервера. Укажите RetryPolicy (или RetryOptions для Java) при вызове действия. В RetryPolicy укажите экспоненциальный коэффициент 1 и начальный интервал частоты опроса. Затем завершите работу, если опрашиваемый ресурс не готов, и сервер попытается повторить его до указанного интервала истечения срока действия политики повторных попыток.

  • Для очень частых опросов каждые несколько секунд или быстрее решение состоит в том, чтобы реализовать опрос внутри реализации действия в виде цикла, который опрашивает, а затем спит в течение интервала опроса. Чтобы обеспечить своевременный перезапуск операции опроса в случае сбоя / перезапуска работника, операция должна пульсировать на каждой итерации. Используйте соответствующий RetryPolicy для перезапуска такой неудачной деятельности.

  • В редком случае, когда опрос требует периодического выполнения последовательности действий или аргументы действий должны меняться между попытками, может использоваться дочерний рабочий процесс. Хитрость в том, что родитель не знает о том, что ребенок звонит продолжить как новый. Он только получает уведомление, когда ребенок завершает или терпит неудачу. Таким образом, если дочерний элемент выполняет последовательность действий в цикле, и вызовы продолжаются как новые, периодически на родительский элемент не влияют, пока дочерний элемент не завершится.

Другие вопросы по тегам