RetryMiddleware
in package
implements
MiddlewareInterface
FinalYes
Повтор запроса согласно политике {@see \CloudCastle\Curl\Retry\RetryPolicy}.
Повторяет запрос при сетевых сбоях, таймаутах и заданных кодах ответа (по
умолчанию 429 и 5xx). Пауза берётся из экспоненциального backoff, а при
наличии заголовка Retry-After — из него. Функции задержки и случайного
джиттера инъектируются, что делает поведение детерминированным в тестах.
Table of Contents
Interfaces
- MiddlewareInterface
- Звено конвейера обработки запроса.
Methods
- __construct() : mixed
- process() : Response
- Обработать запрос, передав управление дальше по конвейеру.
Methods
__construct()
public
__construct([callable(float): void|null $sleeper = null ][, callable(): float|null $random = null ]) : mixed
Parameters
- $sleeper : callable(float): void|null = null
-
функция паузы в секундах (по умолчанию
usleep) - $random : callable(): float|null = null
-
источник доли джиттера [0, 1) (по умолчанию случайный)
process()
Обработать запрос, передав управление дальше по конвейеру.
public
process(Request $request, callable(Request): Response $next) : Response
Parameters
- $request : Request
-
входящий запрос
- $next : callable(Request): Response
-
следующий обработчик конвейера
Attributes
- #[Override]
Return values
Response —полученный ответ