python retry装饰器
2024-09-08 19:17:19
from functools import wraps
import time # def retry(retry_time, retry_on_result, time_wait):
# def test(func):
# @wraps(func)
# def wrapper(*args, **kwargs):
# i = 0
# while i < retry_time:
# i += 1
# res = func(*args, **kwargs)
# if not retry_on_result(res):
# return res
# time.sleep(time_wait)
# return wrapper
# return test class retry:
def __init__(self, retry_time, retry_on_result, time_wait):
self.retry_time = retry_time
self.retry_on_result = retry_on_result
self.time_wait = time_wait def __call__(self, func):
@wraps(func)
def wrapped(*args, **kwargs):
i = 0
while i < self.retry_time:
res = func(*args, **kwargs)
if not self.retry_on_result(res):
return res
i+=1
time.sleep(self.time_wait)
return wrapped @retry(3, lambda x: x is None, 1)
def test(a):
print(a)
return None if __name__ == "__main__":
print(test("s"))
最新文章
- 未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序。解决办法
- wireshark常用命令
- vim学习
- Android清除本地数据缓存代码案例
- 【转】shell脚本处理字符串的常用方法
- Css简介
- ASP.NET之电子商务系统开发-1(数据列表)
- 【转】 一个fork的面试题
- signedCookies
- python自动发邮件
- SQL Server查询重复数据
- 读《Tooth-Marked Tongue Recgnition Using Multiple Instance Learning and CNN Features》
- NodeJS笔记(二)- 修改模块默认保存路径
- 把源码放到服务器部署webservice调用出错 MVC C#
- topcoder srm 690 div1 -3
- PAT甲题题解-1014. Waiting in Line (30)-模拟,优先级队列
- ECShop 调用自定义广告
- 深入源码分析Java线程池的实现原理
- 【BZOJ1502】[NOI2005]月下柠檬树 Simpson积分
- (暂时弃坑)(半成品)ACM数论之旅18---反演定理 第二回 Mobius反演(莫比乌斯反演)((づ ̄3 ̄)づ天才第一步,雀。。。。)