Gå til innholdet

Eksponentiell backoff

Eksponentiell backoff multipliserer ventetiden mellom nye forsøk opp til en fastsatt øvre grense.

Også kjent somExponential backoff
API-er og datakontrakter

Eksponentiell backoff øker ventetiden mellom nye forsøk med en faktor, vanligvis opp til en øvre grense. Etter en midlertidig feil sender applikasjonen derfor ikke straks den samme forespørselen igjen. Backoff er en intervallregel i en strategi for nye forsøk.

Fastsett ventetid og stoppregel hver for seg

Et fiktivt API-eksempel venter ett sekund etter et mislykket forsøk, dobler intervallet og begrenser det til fire sekunder: 1 → 2 → 4 → 4 s. Dette er illustrerende grunnintervaller uten jitter, ikke anbefalte driftsverdier. Jitter legger tilfeldig variasjon til den faktiske ventetiden slik at mange klienter ikke prøver igjen samtidig.

Den øvre grensen stopper ikke forsøkene. Maksimalt antall forsøk, samlet tidsbudsjett og aktuelle feil må fastsettes separat. En ugyldig forespørsel blir ikke gyldig av å vente; en handling med mulige sideeffekter må kunne gjentas trygt.

Hvis klientbiblioteket allerede prøver igjen, kan enda en løkke i applikasjonen mangedoble antallet kall. Teamet må derfor se begge lagene samlet.

Kilder