Политика повторов (Retries)
Configure retries with RetryPolicy — attempt count, retryable statuses, backoff, and retry headers handling.
Настройка повторных попыток с помощью RetryPolicy — количество попыток, повторяемые статусы, задержка и обработка заголовков повтора.
export function SdkSignature({children}) {
async function copy(event) {
const button = event.currentTarget;
const code = button.parentElement.querySelector("pre code");
try {
await navigator.clipboard.writeText(code.textContent);
button.setAttribute("aria-label", "Signature copied");
button.dataset.copied = "true";
} catch {
button.setAttribute("aria-label", "Copy failed; select the signature to copy");
}
setTimeout(() => {
button.setAttribute("aria-label", "Copy signature");
delete button.dataset.copied;
}, 2000);
}
return
{children}}
typesafe\_sdk.RetryPolicy
dataclass
Конфигурация поведения повторных попыток (retries) в SDK.
Примеры:
from typesafe_sdk import RetryPolicy, TypeSafeClient
client = TypeSafeClient(
retry=RetryPolicy(
max_retries=3, timeout=10.0, http_statuses={429, 500, 502, 503, 504}
)
)
max\_retries
class-attribute instance-attribute
{" "}
{"int"}{" "}
{"="}{" "}
{"2"} {"\n"}
Максимальное количество повторных попыток после начального запроса; 0 отключает повторные попытки.
backoff\_initial
class-attribute instance-attribute
{" "}
{"float"}{" "}
{"="}{" "}
{"0.5"} {"\n"}
Начальная задержка в секундах, удваиваемая с каждой попыткой вплоть до backoff_max; ноль отключает увеличение задержки (backoff).
backoff\_max
class-attribute instance-attribute
{" "}
{"float"}{" "}
{"="}{" "}
{"5.0"} {"\n"}
Максимальная задержка между попытками в секундах; ноль отключает увеличение задержки.
backoff\_jitter
class-attribute instance-attribute
{" "}
{"float"}{" "}
{"="}{" "}
{"0.25"} {"\n"}
Случайная доля (джиттер) от 0 до 1, вычитаемая из каждой задержки для предотвращения одновременных запросов.
http\_statuses
class-attribute instance-attribute
Коды состояния HTTP, для которых выполняются повторные попытки.
respect\_retry\_after
class-attribute instance-attribute
{" "}
{"bool"}{" "}
{"="}{" "}
{"True"} {"\n"}
Учитывать ли заголовки ответа Retry-After и retry-after-ms.
api\_connection\_error
class-attribute instance-attribute
{" "}
{"bool"}{" "}
{"="}{" "}
{"True"} {"\n"}
Повторять ли запрос при ошибке TypeSafeAPIConnectionError, возникающей, если не удается подключиться к серверу или прочитать ответ.
api\_timeout\_error
class-attribute instance-attribute
{" "}
{"bool"}{" "}
{"="}{" "}
{"True"} {"\n"}
Повторять ли запрос при ошибке TypeSafeAPITimeoutError, возникающей при превышении таймаута запроса.
exceptions
class-attribute instance-attribute
Дополнительные типы исключений, инициирующие повторную попытку, сверх встроенных правил.
predicate
class-attribute instance-attribute
Необязательная функция-предикат, вызываемая с возникшим исключением; возврат True инициирует повторную попытку в дополнение к остальным правилам.
timeout
class-attribute instance-attribute
{" "}
{"float"}{" "}
{"|"}{" "}
{"None"}{" "}
{"="}{" "}
{"30.0"} {"\n"}
Общий лимит времени (бюджет) на повторные попытки в секундах на один вызов SDK, включая начальную попытку и все задержки; None отключает ограничение.
Повторные попытки прекращаются перед попыткой, задержка которой превысит или исчерпает бюджет, после чего повторно выбрасывается последняя ошибка.