Better handling of large retries

This commit is contained in:
tcely 2025-06-14 14:58:53 -04:00 committed by GitHub
parent 93b5ef7d43
commit 328682160e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -74,9 +74,12 @@ def exponential_backoff(task_func=None, /, *args, **kwargs):
try: try:
return fn(*a, **kwa) return fn(*a, **kwa)
except Exception as exc: except Exception as exc:
attempt = 1 for attempt in range(1, 1_001):
while task.retry_delay <= backoff(attempt): if backoff(attempt) > task.retry_delay:
attempt += 1 task.retry_delay = backoff(attempt)
break
# insanity, but handle it anyway
if 1_000 == attempt:
task.retry_delay = backoff(attempt) task.retry_delay = backoff(attempt)
raise exc raise exc
kwargs.update(dict( kwargs.update(dict(