CloudCastle Curl

RetryPolicy
in package

FinalYes

Политика повторного выполнения запроса.

Определяет число повторов, коды ответов, при которых повтор осмыслен (по умолчанию 429 и 5xx), а также реагирование на сетевые сбои и таймауты. Расчёт паузы делегируется Backoff; при наличии заголовка Retry-After он имеет приоритет над расчётной задержкой.

Table of Contents

Methods

__construct()  : mixed
delayFor()  : float
Пауза перед повтором указанной попытки.
maxRetries()  : int
Максимальное число повторов.
respectsRetryAfter()  : bool
Учитывать ли заголовок `Retry-After`.
retriesNetworkError()  : bool
Повторять ли при сетевом сбое.
retriesStatus()  : bool
Нужен ли повтор для указанного статуса ответа.
retriesTimeout()  : bool
Повторять ли при таймауте.

Methods

__construct()

public __construct([int $maxRetries = 0 ][, Backoff $backoff = new Backoff() ][, array<int, int> $retryStatuses = [429, 500, 502, 503, 504] ][, bool $retryOnNetworkError = true ][, bool $retryOnTimeout = true ][, bool $respectRetryAfter = true ]) : mixed
Parameters
$maxRetries : int = 0

максимальное число повторов (0 — повторов нет)

$backoff : Backoff = new Backoff()

расчёт паузы между повторами

$retryStatuses : array<int, int> = [429, 500, 502, 503, 504]

HTTP-статусы, при которых повтор осмыслен

$retryOnNetworkError : bool = true

повторять ли при сетевых сбоях

$retryOnTimeout : bool = true

повторять ли при таймаутах

$respectRetryAfter : bool = true

учитывать ли заголовок Retry-After

delayFor()

Пауза перед повтором указанной попытки.

public delayFor(int $attempt[, float $randomFraction = -1.0 ]) : float
Parameters
$attempt : int

номер завершившейся попытки (>= 1)

$randomFraction : float = -1.0

доля джиттера [0, 1) для детерминизма в тестах

Return values
float

задержка в секундах

maxRetries()

Максимальное число повторов.

public maxRetries() : int
Return values
int

число повторов

respectsRetryAfter()

Учитывать ли заголовок `Retry-After`.

public respectsRetryAfter() : bool
Return values
bool

true, если значение Retry-After имеет приоритет

retriesNetworkError()

Повторять ли при сетевом сбое.

public retriesNetworkError() : bool
Return values
bool

true, если сетевые сбои повторяются

retriesStatus()

Нужен ли повтор для указанного статуса ответа.

public retriesStatus(int $status) : bool
Parameters
$status : int

код ответа

Return values
bool

true, если статус входит в набор повторяемых

retriesTimeout()

Повторять ли при таймауте.

public retriesTimeout() : bool
Return values
bool

true, если таймауты повторяются

On this page

Search results