retrying 模块

安装
1
pip install retrying

 简单使用

复制代码
import random
from retrying import retry

@retry
def do_something_unreliable():
    if random.randint(0, 10) > 1:
        print("just have a test")
        raise IOError("raise exception!")
    else:
        return "good job!"

print(do_something_unreliable())
复制代码

其他参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 最大重试次数
@retry(stop_max_attempt_number=5)
# 限制最长重试时间(从执行方法开始计算)
@retry(stop_max_delay=5000)
# 设置固定重试时间
@retry(wait_fixed=2000)
# 设置重试时间的随机范围
@retry(wait_random_min=1000,wait_random_max=2000)
 
# 根据异常重试
def retry_if_io_error(exception):
    return isinstance(exception, IOError)
# 设置特定异常类型重试
@retry(retry_on_exception=retry_if_io_error)
 
 
# 通过返回值判断是否重试
def retry_if_result_none(result):
    """Return True if we should retry (in this case when result is None), False otherwise"""
    # return result is None
    if result =="111":
        return True
@retry(retry_on_result=retry_if_result_none)

  

 
 
posted @   日天达人  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示