Vai al contenuto

Backoff esponenziale

Il backoff esponenziale moltiplica l’intervallo tra i nuovi tentativi fino a un limite definito.

Noto anche comeExponential backoff
API e contratti dati

Il backoff esponenziale aumenta secondo un fattore il tempo fra i nuovi tentativi, di solito fino a un limite massimo. Dopo un guasto temporaneo, l’applicazione non invia quindi subito la stessa richiesta. È una regola sugli intervalli all’interno di una strategia di gestione dei tentativi.

Separare l’intervallo dalla regola di arresto

Un esempio fittizio di API attende un secondo dopo un tentativo fallito, raddoppia l’intervallo e lo limita a quattro secondi: 1 → 2 → 4 → 4 s. Sono intervalli di base illustrativi senza jitter, non valori operativi consigliati. Il jitter introduce una variazione casuale nell’attesa effettiva per evitare che molti client riprovino contemporaneamente.

Il limite dell’intervallo non interrompe i tentativi. Numero massimo, tempo complessivo ed errori ammessi vanno definiti separatamente. Aumentare l’attesa non corregge una richiesta non valida; un’operazione con possibili effetti collaterali deve poter essere ripetuta in sicurezza.

Se la libreria client riprova già, un altro ciclo nell’applicazione può moltiplicare le chiamate. Il team deve quindi considerare insieme entrambi i livelli.

Fonti