Calculadora de backoff exponencial

Indica el primer retraso, el multiplicador, el retraso máximo y el número de reintentos para ver el calendario que seguirá tu bucle de reintentos, cuánto puede esperar una petición en total y qué cambia con jitter completo o igual.

ms
ms
0 significa sin máximo.
Jitter
Espera total más larga1 min 32 s
ReintentoRetrasoEspera acumulada (máxima)
1500 ms500 ms
21 s1,5 s
32 s3,5 s
44 s7,5 s
58 s15,5 s
616 s31,5 s
730 s1 min 2 s
830 s1 min 32 s

Funciona en tu navegador: nada de lo que escribes se envía a ningún sitio.

Cómo se usa

  1. Escribe el primer retraso en milisegundos y el multiplicador (2 duplica cada vez).
  2. Fija el retraso máximo, o 0 para no limitarlo, y el número de reintentos.
  3. Elige el tipo de jitter y lee la tabla y los totales.

Fórmula

delay(n) = min(máximo, primer retraso × multiplicador^(n − 1))

Con jitter completo, el retraso real es aleatorio en [0, delay(n)]; con jitter igual, en [delay(n) ÷ 2, delay(n)]. Los totales suman los valores más cortos, medios y más largos de cada reintento.

Ejemplo resuelto

Primer retraso 500 ms, multiplicador 2, máximo 30 s y 8 reintentos: los retrasos son 0,5, 1, 2, 4, 8 y 16 s, y luego 32 s y 64 s se recortan a 30 s. La espera total más larga es 0,5 + 1 + 2 + 4 + 8 + 16 + 30 + 30 = 91,5 s, que se muestra redondeada como 1 min 32 s. Con jitter completo, la media total es la mitad: 45,75 s.

Consejos

  • Respeta la cabecera Retry-After cuando el servidor la envíe: manda sobre tu calendario.
  • Pon al bucle un plazo total además de un número de reintentos.
  • Registra el número de intento para ver en producción con qué frecuencia se reintenta.

Preguntas frecuentes

¿Qué es el backoff exponencial?

Una estrategia de reintentos en la que cada espera es más larga que la anterior, normalmente el doble. El servicio que falla gana margen para recuperarse y los clientes no lo saturan con reintentos. El retraso antes del reintento n es el primer retraso × multiplicador^(n − 1), limitado por el máximo.

¿Para qué sirve el jitter?

Si muchos clientes fallan a la vez, un calendario idéntico hace que también reintenten a la vez. El jitter (variación aleatoria) los reparte. El jitter completo elige un retraso aleatorio entre 0 y el calculado; el jitter igual conserva la mitad y hace aleatoria la otra mitad.

¿Qué retraso máximo conviene usar?

Depende de cuánto pueda esperar quien llama. Las peticiones interactivas suelen limitarse a unos pocos segundos y se rinden tras unos cuantos reintentos; las tareas en segundo plano pueden esperar minutos. La espera total te dice si el calendario cabe en tu timeout.

¿Hay que reintentar cualquier error?

No. Reintenta los timeouts, los errores de conexión y respuestas como 429 o 503, que indican un problema temporal. Errores como 400 o 404 volverán a fallar. Reintenta solo operaciones que se puedan repetir sin riesgo, o hazlas idempotentes antes.

Más en Desarrollo

Todas las herramientas de la categoría: Desarrollo ·Actualizado el 4 de noviembre de 2026

Opciones de privacidad

Google Analytics nos muestra qué herramientas se usan y si funcionan. Puede usar cookies. Tu elección se guarda en este navegador.