python自定义重试装饰器
在生产环境中,某些环节因为IO的原因,可能会失败,为了解决这种代码逻辑上没有问题,但是只能通过多执行几次才能跑成功的问题,特地设计了这种重试模块.
这个装饰器可以接收两个参数:最大重试次数和重试间隔
import functoolsimport time
# 最大重试次数/重试间隔(单位秒)
def retry(stop_max_attempt_number=10, wait_fixed=2):
def decorator(func):
@functools.wraps(func)
def wrapper(*args, **kw):
retry_num = 0
while retry_num < stop_max_attempt_number:
rs = None
try:
rs = func(*args, **kw)
break
except Exception as e:
retry_num += 1
time.sleep(wait_fixed)
if retry_num == stop_max_attempt_number:
raise Exception(e)
finally:
if rs:
return rs
return wrapper
return decorator
以上是 python自定义重试装饰器 的全部内容, 来源链接: utcz.com/z/387589.html