Hoppa till innehållet

Exponentiell backoff

Exponentiell backoff multiplicerar väntetiden mellan nya försök upp till en bestämd övre gräns.

Även känt somExponential backoff
API:er och datakontrakt

Exponentiell backoff ökar väntetiden mellan nya försök med en faktor, vanligen upp till en övre gräns. Efter ett tillfälligt fel skickar applikationen därför inte omedelbart samma begäran igen. Backoff är en intervallregel inom en strategi för återförsök.

Bestäm väntetid och stoppregel var för sig

Ett fiktivt API-exempel väntar en sekund efter ett misslyckat försök, fördubblar intervallet och begränsar det till fyra sekunder: 1 → 2 → 4 → 4 s. Detta är illustrativa grundintervall utan jitter, inga rekommenderade driftvärden. Jitter lägger till slumpmässig variation i den faktiska väntetiden så att många klienter inte försöker igen samtidigt.

Den övre gränsen stoppar inte försöken. Maximalt antal försök, total tidsbudget och vilka fel som medger återförsök måste bestämmas separat. Längre väntan gör inte en ogiltig begäran giltig; en åtgärd med möjliga sidoeffekter måste kunna upprepas säkert.

Om klientbiblioteket redan försöker igen kan ytterligare en loop i applikationen multiplicera antalet anrop. Teamet måste därför se båda lagren tillsammans.

Källor