retry 是一个用于错误处理的模块, 默认 @retry() 方式调用会一直尝试函数直到运行成功.

    pip install retry

    1. from retry import retry
    2. @retry()
    3. def demo():
    4. print('Error!')
    5. raise
    6. demo()
    7. Out: Error!
    8. Error!
    9. ...

    参数:
    exceptions: 错误类型, 默认为 Exception(捕获所有类型错误), 也可以传入元组指定多种类型的错误.
    tries: 捕获错误之后重复运行次数, 默认 -1(无数次).
    delay: 每次重复运行之前的停顿时长, 单位秒, 默认 0(无停顿).
    backoff: 呈指数级每次重复运行之间的停顿时长, 配合 delay 来使用
    delay=3, backoff=2, 则第一次间隔为 32**0=1(s), 第二次 321=2(s), 第三次 3*22=4(s)
    max_delay: backoff 和 delay 配合下出现的等待时间上限