Pular para o conteúdo

tentativa

Repetição com recuo exponencial, jitter e circuit breaker.

bash
dataforge add tentativa
Versão1.0.0
LicençaMIT
Dependênciasnenhuma
Exporta8 símbolos

Por que existe#

Repetir só ajuda quando a falha é transitória. Repetir uma falha determinística — senha errada, JSON inválido — é gastar tempo para chegar ao mesmo lugar; por isso parar_se existe.

Uso#

dataforge
adopt tentativa as R

dados := R.repetir(lambda => buscar_api(), 3)

politica := R.politica(5, 0.1, 2.0)
dados := R.com_politica(lambda => buscar_api(), politica)

API#

O que relay exporta — 8 símbolos:

dataforge
record Politica
blueprint Disjuntor
politica(tentativas := 3, espera_inicial := 0.1, fator := 2.0,
                espera_maxima := 30.0, jitter := yes)
espera_da_tentativa(p, n)
com_politica(acao, p, parar_se := void)
repetir(acao, tentativas := 3)
repetir_ate(condicao, tentativas := 10, espera := 0.1)
disjuntor(limite := 5, descanso := 30.0)

Instalar#

bash
dataforge add tentativa
dataforge add tentativa@1.0.0
dataforge add tentativa@^1.0