aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/hatchet_sdk/utils/backoff.py
blob: 34ddac7f518534df533e0a2b45374d1813efa34e (about) (plain)
1
2
3
4
5
6
7
8
9
import asyncio
import random


async def exp_backoff_sleep(attempt: int, max_sleep_time: float = 5) -> None:
    base_time = 0.1  # starting sleep time in seconds (100 milliseconds)
    jitter = random.uniform(0, base_time)  # add random jitter
    sleep_time = min(base_time * (2**attempt) + jitter, max_sleep_time)
    await asyncio.sleep(sleep_time)