Gå til indholdet

Eksponentiel backoff

Eksponentiel backoff øger ventetiden mellem nye forsøg med en faktor op til en fastsat øvre grænse.

Også kendt somExponential backoff
API'er og datakontrakter

Eksponentiel backoff øger ventetiden mellem nye forsøg med en faktor, normalt op til en øvre grænse. Efter en midlertidig fejl sender applikationen derfor ikke straks den samme anmodning igen. Backoff er en intervalregel i en strategi for gentagne forsøg.

Fastlæg ventetid og stopregel hver for sig

Et fiktivt API-eksempel venter et sekund efter et mislykket forsøg, fordobler intervallet og begrænser det til fire sekunder: 1 → 2 → 4 → 4 s. Det er eksempler på grundintervaller uden jitter, ikke anbefalede driftsværdier. Jitter tilføjer tilfældig variation til den faktiske ventetid, så mange klienter ikke forsøger igen samtidig.

Den øvre grænse stopper ikke forsøgene. Maksimalt antal forsøg, samlet tidsbudget og relevante fejl skal fastlægges særskilt. En ugyldig anmodning bliver ikke gyldig af at vente; en handling med mulige sideeffekter skal kunne gentages sikkert.

Hvis klientbiblioteket allerede forsøger igen, kan endnu en løkke i applikationen mangedoble antallet af kald. Teamet skal derfor se begge lag under ét.

Kilder