backoff
A função backoff
executa uma ação assíncrona com tentativas automáticas e atrasos progressivos entre as tentativas, utilizando estratégias de backoff e jitter.
Sintaxe
typescript
await backoff(action, options?)
Parâmetros
Parâmetro | Tipo | Descrição |
---|---|---|
action | Function | Função assíncrona a ser executada e retentada em caso de erro. |
options | object | (Opcional) Configurações avançadas de backoff e jitter. |
Opções
backoffMode
('fixed' | 'linear' | 'exponential'
): Estratégia de aumento do atraso (padrão: 'exponential').initialDelay
(number
): Atraso inicial em ms (padrão: 500).jitterMode
('none' | 'full' | 'equal' | 'decorrelated'
): Estratégia de variação aleatória do atraso (padrão: 'full').maxDelay
(number
): Atraso máximo em ms (padrão: 60000).maxAttempts
(number
): Número máximo de tentativas (padrão: 5).onRetry
(Function
): Função chamada a cada retentativa, recebendo o número da tentativa e o atraso atual.
Retorno
Tipo | Descrição |
---|---|
Promise | Resolve com o resultado da ação ou rejeita após todas as tentativas. |
Exemplos
typescript
await backoff(() => fetch('/api/data'), { maxAttempts: 3, backoffMode: 'linear' });
Notas
- Lança erro se os parâmetros forem inválidos.
- Útil para lidar com falhas temporárias em operações assíncronas, como requisições HTTP.