ForHosting KIT · Web: scraping y monitoreo

Agenda reintentos webhook

Cinco reintentos exponenciales con una base de 1000 esperan 1000, 2000, 4000, 8000 y 16000, en total 31000: elija el número de reintentos, el retraso base y la estrategia y obtenga la agenda completa con las esperas acumuladas. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto
Si escribe
Máximo de reintentos
5
Retardo base
1 000
Estrategia
Exponential
Obtiene
Retardos
1 000, 2 000, 4 000, 8 000, 16 000
Espera total
31 000
Número de intentos
5

backoff fijo, lineal o exponencial

Por qué conviene escribir el plan de reintentos

Cuando falla una notificación de eventos, el sistema que la envía espera y lo vuelve a intentar. Quien entrega esas notificaciones y quien las recibe necesitan una lista explícita de esperas antes de cada reintento, no una promesa vaga de que habrá backoff en algún punto. Sin una agenda publicada, el equipo de operaciones no puede razonar sobre el peor retraso de entrega y las simulaciones de carga no reproducen los huecos exactos que producción insertará entre intentos. Esta herramienta toma un número máximo de reintentos, un retraso base mayor que cero y una estrategia, y devuelve el retraso de cada intento, la espera acumulada y una fórmula breve que puede dejar junto a un panel o en su manual de operaciones.

Fijo, lineal o exponencial, y el error habitual

El backoff fijo mantiene el mismo retraso base en cada intento: es fácil de razonar y respetuoso con los receptores que solo necesitan una breve pausa. El lineal multiplica la base por el número de intento, contando desde uno, de modo que los últimos reintentos esperan proporcionalmente más sin crecer tan deprisa como el exponencial. El exponencial duplica cada vez: cinco reintentos desde 1000 dan 1000, 2000, 4000, 8000 y 16000, en total 31000. El error habitual es un retraso base nulo o negativo, que haría girar una cola sin descanso; se rechaza de inmediato. Mantenga todos los retrasos en una sola unidad, normalmente milisegundos.

¿La agenda incluye jitter aleatorio?

Aplique su propio jitter encima si necesita dispersión entre workers.

¿Cuánto se espera en total con cinco reintentos exponenciales?

Con un retraso base de 1000, las esperas son 1000, 2000, 4000, 8000 y 16000, y la espera acumulada llega a 31000 antes del quinto intento. El resultado usa la misma unidad que usted eligió, normalmente milisegundos.

¿Qué diferencia hay entre el backoff fijo, el lineal y el exponencial?

El fijo espera el mismo retraso base antes de cada intento. El lineal multiplica la base por el número de intento, contando desde uno. El exponencial duplica la espera cada vez: la base por dos elevado al número de intento menos uno.

¿Qué unidad debe usar el retraso base?

La que prefiera, siempre que todos los retrasos la compartan; lo habitual son los milisegundos. La base debe ser mayor que cero, porque una espera nula o negativa haría que una cola reintentara sin pausa, así que esos valores se rechazan.

¿Cuántos reintentos puedo planificar?

De 1 a 100. Cada intento recibe exactamente un retraso antes de lanzarse, y la agenda muestra el número de intento, su retraso y la espera acumulada hasta ese momento, lo que deja ver de un vistazo el peor tiempo de entrega.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/dev/webhook-retry-schedule-build

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/dev/webhook-retry-schedule-build \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"max_retries":5,"base_delay":1000,"strategy":"exponential"}'
{
  "max_retries": 5,
  "base_delay": 1000,
  "strategy": "exponential"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.webhook_retry_schedule_build",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Los receptores de webhooks y los trabajadores de entrega necesitan una lista explícita de tiempos de espera antes de cada reintento, no una promesa vaga de que el backoff se aplicará en algún punto de la pila. Este generador de agenda de reintentos de entrega webhook toma un número máximo de reintentos, un retardo base estrictamente positivo y una estrategia fija, lineal o exponencial, y devuelve los retardos por intento, las esperas acumuladas y una fórmula breve que usted puede fijar en pruebas o mostrar junto a un panel. La misma lógica pura se ejecuta gratis en el navegador y por la API, de modo que planificar una escalera exponencial de cinco reintentos sin conexión coincide con lo que usará su worker en el borde al configurar rutas de notificación o bucles de entrega propios. Los retardos base inválidos fallan de inmediato con invalid_input en lugar de inventar esperas nulas o negativas que saturarían una cola.

Qué es una agenda de reintentos webhook y en qué se diferencian las tres estrategias

Sin una agenda publicada, los operadores no pueden razonar sobre la latencia de entrega en el peor caso, y las pruebas de carga no reproducen los huecos exactos que un worker de producción insertará entre reintentos. El backoff fijo mantiene el mismo retardo base en cada intento: sencillo de razonar y amable con los sistemas aguas abajo que solo necesitan un breve enfriamiento. El backoff lineal multiplica el retardo base por el índice de intento (base uno), de modo que los reintentos posteriores esperan proporcionalmente más sin crecer tan rápido como la pura exponencial. Una agenda de reintentos de entrega webhook es la lista ordenada de retardos que usted espera antes del intento uno, del dos y así sucesivamente tras un POST fallido a la URL del suscriptor. Esta capacidad codifica tres familias habituales de backoff usadas en buses de mensajes y clientes HTTP. El backoff exponencial duplica el retardo anterior cada vez usando base_delay por dos elevado a intento menos uno, el patrón clásico ante fallos de red transitorios y límites de tasa. Usted suministra max_retries como cuántas ranuras de reintento materializar, base_delay como semilla positiva en la unidad elegida (normalmente milisegundos) y strategy como fixed, linear o exponential. La respuesta repite esas entradas, lista los retardos en orden, los suma como total_wait y expande un array schedule con número de intento, retardo y espera acumulada para que gráficos de UI y generadores de configuración no necesiten aritmética extra.

Contrato de entrada, forma de la respuesta y cuándo falla la validación

Envíe por POST un cuerpo JSON con tres campos obligatorios. max_retries es un entero de uno a cien que indica cuántos reintentos programar. base_delay es un número finito estrictamente mayor que cero en cualquier unidad coherente; cero y valores negativos se rechazan porque una espera no positiva o bien hace busy-spin o carece de sentido para la programación. strategy debe ser la cadena fixed, linear o exponential (sin distinguir mayúsculas tras el recorte). Se aceptan alias como retries, base_ms y backoff para que formas de configuración existentes encajen limpiamente. Campos ausentes, max_retries no enteros, base_delay no finito y estrategias desconocidas lanzan invalid_input y no se facturan. En caso de éxito el cuerpo incluye max_retries, base_delay, strategy, delays como array plano, total_wait como suma de retardos, attempt_count igual a max_retries, schedule como objetos con attempt, delay y cumulative, y formula que reexpresa la forma cerrada de la estrategia elegida. Ejemplo: max_retries cinco, base_delay mil, strategy exponential produce retardos de mil, dos mil, cuatro mil, ocho mil y dieciséis mil con total_wait de treinta y un mil. Combine la agenda con su propia política de jitter si necesita dispersión aleatoria; este endpoint omite a propósito el jitter y las marcas de tiempo de reloj de pared para que los resultados sigan siendo deterministas entre navegador y API. El tope de max_retries es cien para que un error tipográfico no expanda un payload enorme ni desborde productos intermedios en escaleras exponenciales grandes.

Dónde generar una agenda de reintentos aporta valor en sistemas reales

Los arneses de prueba de carga inyectan el mismo array de retardos que usa el worker de producción, eliminando el clásico desfase en el que el entorno de pruebas reintenta más rápido que producción y enmascara errores de límite de tasa. Las plataformas de entrega que exponen ajustes de fiabilidad de webhooks pueden invocar este generador cuando un operador elige el máximo de reintentos y un modo de backoff, y luego almacenar los retardos resultantes junto al secreto del endpoint y la clave de firma. Los runbooks de incidentes se benefician de un total_wait imprimible para que el personal de guardia sepa cuánto puede retrasarse un suscriptor inestable antes del último intento. Los generadores OpenAPI y de SDK pueden documentar escaleras de ejemplo concretas sin mantener a mano tablas que se desvíen del código en tiempo de ejecución. Como la implementación es parse puro de nivel A, cada llamada correcta cuesta el precio base publicado $0.002 sin tokens de modelo ni red de salida; la validación fallida no consume saldo. Mantenga base_delay y total_wait en la misma unidad que sus primitivas de sleep para no convertir milisegundos a segundos por error al cablear la agenda en un bucle de worker.

Configurar el backoff de entrega webhook en un panel

Permita que los operadores elijan el máximo de reintentos y la estrategia fija, lineal o exponencial, y persistan la lista de retardos calculada junto a cada endpoint de suscriptor.

Documentar la latencia de entrega en el peor caso

Muestre total_wait y los retardos acumulados por intento en runbooks para que la guardia sepa cuánto pueden tardar los reintentos antes del dead-letter.

Fijar agendas golden en CI

Afirme que los ficheros de configuración se expanden a los mismos arrays de retardo que los workers de producción, capturando regresiones accidentales de strategy o base_delay.

¿Cómo genero una agenda de reintentos de entrega webhook?

Envíe max_retries (1–100), un base_delay positivo y strategy fixed, linear o exponential. La API devuelve los retardos ordenados, total_wait y una agenda con esperas acumuladas por intento.

¿Cuál es la diferencia entre backoff fijo, lineal y exponencial?

El fijo repite base_delay en cada intento. El lineal usa base_delay por el número de intento. El exponencial usa base_delay por dos elevado a intento menos uno.

¿Por qué base_delay debe ser positivo?

Los retardos nulos o negativos no definen una espera útil antes de un reintento y arriesgan un busy-loop del worker de entrega. Un base_delay no positivo falla con invalid_input y no se factura.

¿Cuánto cuesta generar una agenda de reintentos webhook?

La herramienta del navegador es gratuita. Las peticiones API usan saldo prepago KIT a $0.002 por llamada correcta; la entrada inválida no se factura.

Ver la documentación completa del KIT →