Exponential Backoff with Jitter
PythonSpread retries out so a recovering service isn't stampeded.
Python · 14 lines
copied 49 times
import random
import time
def backoff(attempt: int, base: float = 0.5, cap: float = 30.0) -> float:
return random.uniform(0, min(cap, base * 2 ** attempt))
for attempt in range(5):
try:
call_service()
break
except TimeoutError:
time.sleep(backoff(attempt))
4
Fire
1
Learned something
2
Saved me time
1
Mind-blown
Sign in to react and star