背景
我们经常遇到一个场景,就是如果操作失败则需要多次重试某些操作,这种情况下,如果想优雅的实现功能,又不关心重试逻辑,则可以学习该模块
安装
1 | pip install retry |
API 介绍
retry decorator
1 | def retry(exceptions=Exception, tries=-1, delay=0, max_delay=None, backoff=1, jitter=0, logger=logging_logger): |
retry 参数介绍
- 无参
1 | from retry import retry |
- Exception参数, 默认 Exception, 只捕获重试指定的异常,可以是元组
1 |
|
- backoff参数,尝试间隔时间,成倍数增加
1 | import time |
- max_delay 指定最大间隔时间,backoff参数触发的休眠时间大于max_delay时,休眠时间以max_delay为准则
1 | import time |
- jitter参数,累加,以及异常触发的日志
1 | import time |
retry_call
def retry_call(f, fargs=None, fkwargs=None, exceptions=Exception, tries=-1, delay=0, max_delay=None, backoff=1,
jitter=0,
logger=logging_logger):
“””
调用函数并在失败时重新执行
1 | the function to execute. |
例子
1 | import requests |
其他参数同retry decorator
官网