Durable Objects получили автоматические повторы вызовов с ограничениями

Durable Objects получили автоматические повторы вызовов с ограничениями
Содержание статьи

5 ноября Cloudflare объявила об автоматических повторах fetch и RPC к Durable Objects при повторяемых ошибках до доставки вызова объекту. Изменение касается вызовов из Workers и других Durable Objects. На Mentoring.digital разбираем, что проверить в существующем приложении.

Какие ошибки повторяет среда

По умолчанию выполняется до четырёх повторов. Новый повтор не начинается позднее десяти секунд от начала исходного вызова. Ошибки из пользовательского кода объекта и ошибки с признаком overloaded не повторяются этим механизмом.

При неопределённом результате доставки среда может повторить запрос, но объект отклоняет повтор, если первая попытка уже дошла. Отдельная возможность retryable разрешает повторное выполнение отмеченного метода, поэтому требует проверки его идемпотентности.

Почему нужно пересмотреть собственные retries

Если приложение уже повторяет запросы, каждая его попытка теперь может включать повторы среды. Cloudflare рекомендует уменьшить число собственных попыток или отключить повторы на соответствующем stub через maxRetries: 0.

Для параметра retry и функции retryable нужен Wrangler 4.158.0 или новее. В параметрах stub доступны maxRetries от 0 до 10 и timeoutMs от 500 до 60 000 миллисекунд.

Что проверить перед изменением настроек

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

На тестовом стенде проверьте временный сетевой сбой и завершение после исчерпания попыток. Разобрать надёжность взаимодействия сервисов можно с наставником по DevOps.

Похожие статьи по данной теме