lets figure out something better

pull/36085/head
Trey Moen 4 days ago
parent cfb7d67925
commit 359db20ea4
  1. 5
      common/retry.py

@ -1,21 +1,22 @@
import time import time
import functools import functools
from openpilot.common.swaglog import cloudlog
def retry(attempts=3, delay=1.0, ignore_failure=False): def retry(attempts=3, delay=1.0, ignore_failure=False):
def decorator(func): def decorator(func):
@functools.wraps(func) @functools.wraps(func)
def wrapper(*args, **kwargs): def wrapper(*args, **kwargs):
for _ in range(attempts): for _ in range(attempts):
try: try:
return func(*args, **kwargs) return func(*args, **kwargs)
except Exception: except Exception:
from openpilot.common.swaglog import cloudlog
cloudlog.exception(f"{func.__name__} failed, trying again") cloudlog.exception(f"{func.__name__} failed, trying again")
time.sleep(delay) time.sleep(delay)
if ignore_failure: if ignore_failure:
from openpilot.common.swaglog import cloudlog
cloudlog.error(f"{func.__name__} failed after retry") cloudlog.error(f"{func.__name__} failed after retry")
else: else:
raise Exception(f"{func.__name__} failed after retry") raise Exception(f"{func.__name__} failed after retry")

Loading…
Cancel
Save