可以tenacity
处理这个问题,或者如果我需要捕获异常进行回调并返回下一次尝试,我应该自己实现重试包装器吗?
发送→获取错误→如果可恢复→运行回调→再次尝试发送
当我对这段代码使用一个简单的案例时,下一次尝试从未发生过:
class A:
a = 0
@retry(stop=stop_after_attempt(7))
def never_give_up_never_surrender(cls):
try:
1/cls.a
print('possibly wrong')
except ZeroDivisionError:
cls.a+=1
print('next try')
else:
print('done')