Retrying是一个以Apache 2.0许可证发布的通用重试库,用Python编写,旨在简化为任何事物添加重试行为的任务

安装如下

pip install retrying

以下是一个使用retryingretry模块的简单示例:

from retrying import retry

# 定义一个需要重试的函数
@retry
def fetch_data(url):
    # 假设这里是一个可能出现网络错误的操作
    response = requests.get(url)
    return response.text

# 调用函数,并自动进行重试
data = fetch_data("https://example.com")
print(data)

在上述示例中,fetch_data 函数使用了 @retry 装饰器,当 requests.get(url) 发生网络错误时,retry 模块将自动重试该操作,直到达到默认的最大重试次数(默认为3次)

通过使用retry模块可以更方便地处理可能出现错误的函数,并在需要时进行灵活的重试操作,以增加程序的稳定性和容错性,同时也提供了十分丰富的错误重试设定

@retry(stop_max_attempt_number=5) # 设置重试次数为5次
def fetch_data(url):
    ...
    
@retry(wait_fixed=2000)  # 2秒后进行下一次重试
def fetch_data(url):
    ...
    
@retry(stop_max_attempt_number=3, retry_on_result=lambda result: result is None) # 设定负责的重试条件
def fetch_data(url):
    ...

@retry(stop_max_attempt_number=3, retry_on_exception=IOError) # 捕获特定的异常进行重试
def fetch_data(url):
    ...

这只是 retrying 模块的一小部分用法示例,还有更多选项和配置可以根据具体需求进行使用,更多用法可以参考官方文档

  • retrying:https://github.com/rholder/retrying