typestar

Reintentos con backoff en Python

El backoff exponencial es la forma cortés de reintentar llamadas inestables.

import time

def reintentar(fn, intentos=3, demora=0.5):
    for intento in range(intentos):
        try:
            return fn()
        except Exception:
            if intento == intentos - 1:
                raise
            time.sleep(demora * (2 ** intento))

Cómo funciona

  1. Llama a la función y retorna si hay éxito.
  2. Ante la falla, time.sleep espera, duplicando la demora en cada intento.
  3. La falla final relanza la excepción original.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
10
Caracteres a escribir
193
Tokens
54
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 31 segundos.

Escribe este fragmento

Paso 5 de 5 en Decoradores y clausuras; paso 9 de 53 en Python pythónico.

← Anterior Siguiente →