#azure-durable-functions
#azure-durable-functions
Вопрос:
Если моя функция activity завершается с ошибкой, я хочу, чтобы она была автоматически повторена. Я хочу, чтобы сначала повторить попытку сначала через несколько секунд, а затем повторно. Последняя попытка должна быть примерно через 4 дня. Первоначальные попытки должны выполняться с интервалом в несколько секунд, а затем частота должна уменьшаться, чтобы в конце он выполнял попытки каждые 4 часа или около того. Как должны быть установлены параметры RetryOptions для достижения этой цели? Т.е. Какова формула для вычисления последовательности повторных попыток с учетом следующих параметров:
firstRetryIntervalInMilliseconds = 3000
maxNumberOfAttempts = 100
backoffCoefficient = 2
Ответ №1:
CallActivityWithRetry использует экспоненциальный механизм отсрочки для вычисления интервалов повторных попыток. (исходный код) Задержка n-й попытки рассчитывается по этой формуле:
firstRetryIntervalInMilliseconds * backoffCoefficient ^ n
Класс RetryOptions имеет множество настраиваемых свойств, включая MaxRetryInterval
и RetryTimeout
, которые должны помочь достичь желаемого поведения при повторных попытках.