Skip to content

SFS-020 Retryier (Повторная отправка запроса (retry)

Технику повторной отправки запроса необходимо использовать на стороне потребителя сервиса в случае кратковременной недоступности провайдера. Для использования этой техники необходимо предусмотреть настраиваемое количество попыток и настраиваемый постоянный интервал между попытками на стороне потребителя сервиса. Использование увеличивающихся интервалов между попытками при малом числе попыток не рекомендуется. Следует предусмотреть значения параметров по умолчанию.

Реализация повторной отправки для Http-клиентов: Повторную отправку запроса следует производить при некоторых условиях:

  • Невалидный код ответа сервера
  • Запрос не сформирован (внутренняя ошибка сервера или TCP-соединения)
  • Ошибки TCP-соединения

Не следует производить повторную отправку запроса в том случае, когда очевидно, что запрос не будет обработан, например, провайдер сигнализирует о том, что он перегружен.

Screenshot 2024-12-11 at 16 49 20

Рекомендуется использовать функционал повторной отправки для операций чтения данных (как правило, GET-запросы). Для операций изменения данных функционал повторной отправки рекомендуется использовать только в том случае, если провайдер сервиса гарантирует идемпотентность операции.

Дополнительно

Количество повторов и инртервалы должны управляться через переменные окружения.

См также SFS-015 Blocking Timeouts