ForHosting KIT · Lettura e monitoraggio di siti web

Piano riprova webhook

Cinque nuovi tentativi esponenziali con base 1000 attendono 1000, 2000, 4000, 8000 e 16000, per un totale di 31000: scelga il numero di tentativi, il ritardo base e la strategia per ottenere il piano completo con le attese cumulate. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Massimo di tentativi
5
Ritardo di base
1000
Strategia
Exponential
Ottiene
Ritardi
1000, 2000, 4000, 8000, 16.000
Attesa totale
31.000
Numero di tentativi
5

backoff fisso, lineare, esponenziale

Perché conviene mettere per iscritto il piano dei tentativi

Quando una notifica di eventi non va a buon fine, il sistema che la invia attende e riprova. Chi consegna queste notifiche e chi le riceve ha bisogno di un elenco esplicito delle attese prima di ogni nuovo tentativo, non di una vaga promessa che il backoff avverrà da qualche parte. Senza un piano pubblicato, chi gestisce il servizio non può ragionare sul ritardo di consegna peggiore e le simulazioni di carico non riproducono gli intervalli esatti che la produzione inserirà tra i tentativi. Questo strumento prende un numero massimo di tentativi, un ritardo base maggiore di zero e una strategia, e restituisce il ritardo di ogni tentativo, l'attesa cumulata e una breve formula da tenere accanto a un pannello o nelle procedure.

Fisso, lineare o esponenziale, e l'errore tipico

Il backoff fisso mantiene lo stesso ritardo base a ogni tentativo: è facile da capire e delicato con i destinatari che hanno bisogno solo di una breve pausa. Il lineare moltiplica la base per il numero del tentativo, contando da uno, così gli ultimi tentativi attendono in proporzione di più senza crescere rapidamente come l'esponenziale. L'esponenziale raddoppia ogni volta: cinque tentativi da 1000 danno 1000, 2000, 4000, 8000 e 16000, per un totale di 31000. L'errore tipico è un ritardo base nullo o negativo, che farebbe girare una coda senza sosta; viene rifiutato subito. Tenga tutti i ritardi nella stessa unità, di solito i millisecondi.

Il piano include jitter casuale?

Applichi il Suo jitter sopra se le serve dispersione tra worker.

Quanto si attende in totale con cinque tentativi esponenziali?

Con un ritardo base di 1000, le attese sono 1000, 2000, 4000, 8000 e 16000, e l'attesa cumulata arriva a 31000 prima del quinto tentativo. Il risultato usa la stessa unità che ha scelto, di solito i millisecondi.

Che differenza c'è tra backoff fisso, lineare ed esponenziale?

Il fisso attende lo stesso ritardo base prima di ogni tentativo. Il lineare moltiplica la base per il numero del tentativo, contando da uno. L'esponenziale raddoppia l'attesa ogni volta: la base per due elevato al numero del tentativo meno uno.

Quale unità deve usare il ritardo base?

Quella che preferisce, purché tutti i ritardi la condividano; di solito si usano i millisecondi. La base deve essere maggiore di zero, perché un'attesa nulla o negativa farebbe riprovare una coda senza sosta, quindi questi valori vengono rifiutati.

Quanti tentativi posso pianificare?

Da 1 a 100. Ogni tentativo riceve esattamente un ritardo prima di partire, e il piano mostra il numero del tentativo, il suo ritardo e l'attesa cumulata fino a quel punto, così il tempo di consegna peggiore si legge subito.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

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

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

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"
  }
}

L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

I ricevitori di webhook e i worker di consegna necessitano di un elenco esplicito di tempi di attesa prima di ogni riprova, non di una vaga promessa che il backoff verrà applicato da qualche parte nello stack. Questo costruttore di piani di riprova per la consegna webhook accetta un numero massimo di riprove, un ritardo base strettamente positivo e una strategia fissa, lineare o esponenziale, e restituisce i ritardi per tentativo, le attese cumulative e una breve formula che Lei può fissare nei test o mostrare accanto a un pannello. La stessa logica pura gira gratis nel browser e tramite API, così pianificare una scala esponenziale a cinque riprove offline coincide con ciò che userà il Suo worker all'edge nel configurare percorsi di notifica o loop di consegna personalizzati. Ritardi base non validi falliscono subito con invalid_input invece di inventare attese nulle o negative che saturerebbero una coda.

Cos'è un piano di riprova webhook e come differiscono le tre strategie

Senza un piano pubblicato, gli operatori non possono ragionare sulla latenza di consegna nel caso peggiore e i test di carico non riproducono gli intervalli esatti che un worker di produzione inserirà tra le riprove. Il backoff fisso mantiene lo stesso ritardo base a ogni tentativo: semplice da ragionare e gentile con i sistemi a valle che necessitano solo di un breve raffreddamento. Il backoff lineare moltiplica il ritardo base per l'indice del tentativo (base uno), così le riprove successive attendono proporzionalmente di più senza crescere tanto in fretta quanto la pura esponenziale. Un piano di riprova per la consegna webhook è l'elenco ordinato dei ritardi che Lei attende prima del tentativo uno, del due e così via dopo un POST fallito all'URL del sottoscrittore. Questa capacità codifica tre famiglie comuni di backoff usate su bus di messaggi e client HTTP. Il backoff esponenziale raddoppia il ritardo precedente ogni volta usando base_delay per due elevato a tentativo meno uno, lo schema classico per guasti di rete transitori e limiti di frequenza. Lei fornisce max_retries come quante fessure di riprova materializzare, base_delay come seme positivo nell'unità scelta (di solito millisecondi) e strategy tra fixed, linear o exponential. La risposta ripete tali ingressi, elenca i ritardi in ordine, li somma come total_wait e espande un array schedule con numero di tentativo, ritardo e attesa cumulativa affinché grafici UI e generatori di configurazione non necessitino di aritmetica extra.

Contratto di ingresso, forma della risposta e quando fallisce la validazione

Invii in POST un corpo JSON con tre campi obbligatori. max_retries è un intero da uno a cento che indica quante riprove pianificare. base_delay è un numero finito strettamente maggiore di zero in qualsiasi unità coerente; zero e valori negativi vengono rifiutati perché un'attesa non positiva o fa busy-spin o è priva di senso per la pianificazione. strategy deve essere la stringa fixed, linear o exponential (senza distinzione di maiuscole dopo il trim). Sono accettati alias come retries, base_ms e backoff affinché forme di configurazione esistenti si mappino in modo pulito. Campi mancanti, max_retries non interi, base_delay non finito e strategie sconosciute sollevano invalid_input e non vengono fatturati. In caso di successo il corpo include max_retries, base_delay, strategy, delays come array piatto, total_wait come somma dei ritardi, attempt_count uguale a max_retries, schedule come oggetti con attempt, delay e cumulative, e formula che riformula la forma chiusa della strategia scelta. Esempio: max_retries cinque, base_delay mille, strategy exponential produce ritardi di mille, duemila, quattromila, ottomila e sedicimila con total_wait di trentuno mila. Abbini il piano alla Sua politica di jitter se le serve dispersione casuale; questo endpoint omette di proposito jitter e timestamp di orologio di parete affinché i risultati restino deterministici tra browser e API. Il tetto di max_retries è cento così un refuso non espande un payload enorme né fa overflow di prodotti intermedi su scale esponenziali ampie.

Dove costruire un piano di riprova genera valore nei sistemi reali

Gli harness di test di carico iniettano lo stesso array di ritardi usato dal worker di produzione, eliminando il classico scarto in cui lo staging riprova più in fretta della produzione e maschera bug di limite di frequenza. Le piattaforme di consegna che espongono impostazioni di affidabilità dei webhook possono chiamare questo costruttore quando un operatore sceglie il massimo di riprove e una modalità di backoff, poi memorizzare i ritardi risultanti accanto al segreto dell'endpoint e alla chiave di firma. I runbook di incidente beneficiano di un total_wait stampabile così il personale di reperibilità sa quanto un sottoscrittore instabile può ritardare prima dell'ultimo tentativo. I generatori OpenAPI e SDK possono documentare scale di esempio concrete senza mantenere a mano tabelle che divergono dal codice runtime. Poiché l'implementazione è parse puro di livello A, ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello né rete in uscita; la validazione fallita non consuma saldo. Mantenga base_delay e total_wait nella stessa unità delle Sue primitive di sleep per non convertire per errore millisecondi in secondi collegando il piano a un loop di worker.

Configurare il backoff di consegna webhook in un pannello

Consenta agli operatori di scegliere il massimo di riprove e la strategia fissa, lineare o esponenziale, e di persistere l'elenco di ritardi calcolato accanto a ogni endpoint di sottoscrittore.

Documentare la latenza di consegna nel caso peggiore

Mostri total_wait e i ritardi cumulativi per tentativo nei runbook così la reperibilità sa quanto possono durare le riprove prima del dead-letter.

Fissare piani golden in CI

Affermi che i file di configurazione si espandono agli stessi array di ritardo dei worker di produzione, intercettando regressioni accidentali di strategy o base_delay.

Come si costruisce un piano di riprova per la consegna webhook?

Invii max_retries (1–100), un base_delay positivo e strategy fixed, linear o exponential. L'API restituisce i ritardi ordinati, total_wait e un piano con attese cumulative per ogni tentativo.

Qual è la differenza tra backoff fisso, lineare ed esponenziale?

Il fisso ripete base_delay a ogni tentativo. Il lineare usa base_delay per il numero di tentativo. L'esponenziale usa base_delay per due elevato a tentativo meno uno.

Perché base_delay deve essere positivo?

Ritardi nulli o negativi non definiscono un'attesa utile prima di una riprova e rischiano un busy-loop del worker di consegna. Un base_delay non positivo fallisce con invalid_input e non viene fatturato.

Quanto costa costruire un piano di riprova webhook?

Lo strumento del browser è gratuito. Le richieste API usano saldo prepagato KIT a $0.002 per chiamata riuscita; l'input non valido non viene fatturato.

Leggi la documentazione completa del KIT →