python黑魔法异常重试的次数,间隔的装饰器涵数
程序员文章站
2022-05-24 14:26:40
...
起因: 在github找到一个库retrying 但这个库一点也不好用,好久没维护了 索性,造一个 还可以扩展timeout from functools import wraps from threading import Event def retry_exception(retry_count=0, interval_wait=0): def wrap(f): @wraps(f) def func(*args, **kwargs): try: return f(*args, **kwargs) except Exception as e: if retry_count == 0: return str(e) if retry_count >= 1: count = retry_count while 1: Event().wait(interval_wait) try: count = count - 1 return f(*args, **kwargs) except Exception as e: if count == 0: return str(e) continue return func return wrap @retry_exception(retry_count=3, interval_wait=3) def tt(): a = 1 if a != 2: raise Exception('i am exception') print(a)
print(tt())
上一篇: NGINX开发杀手锏-线程池