Pythonretry模块怎么用?一文带你轻松掌握错误重试机制

作者:袖梨 2026-07-24

一、简介

retry是一个用于错误处理的模块,功能类似try-except,但更加快捷方便,本文就将简单地介绍一下retry的基本用法。

Pythonretry模块怎么用?一文教你轻松掌握错误重试机制

二、基本用法

retry-作为装饰器进行使用,不传入参数时功能如下例所示:

from retry import retry
 
@retry()
def make_trouble():
    '''Retry until succeed'''
    print ('retrying...')
    raise
 
if __name__ == '__main__':
    make_trouble()
 
# 输出: 一直重试,直到运行成功
retrying...
retrying...
retrying...
retrying...
retrying...
retrying...

三、retry 参数介绍

def retry(exceptions=Exception, tries=-1, delay=0, max_delay=None, backoff=1, jitter=0, logger=logging_logger):
    """Return a retry decorator.

    :param exceptions: an exception or a tuple of exceptions to catch. default: Exception.
    :param tries: the maximum number of attempts. default: -1 (infinite).
    :param delay: initial delay between attempts. default: 0.
    :param max_delay: the maximum value of delay. default: None (no limit).
    :param backoff: multiplier applied to delay between attempts. default: 1 (no backoff).
    :param jitter: extra seconds added to delay between attempts. default: 0.
                   fixed if a number, random if a range tuple (min, max)
    :param logger: logger.warning(fmt, error, delay) will be called on failed attempts.
                   default: retry.logging_logger. if None, logging is disabled.
    """

可以看到,retry()在这里的功能,是在其装饰的函数运行报错后重新运行该函数,在上例中的效果就是反复运行make_trouble(),这也是retry()的基本用法,下面介绍其几个主要参数:

  • exceptions:传入指定的错误类型,默认为Exception,即捕获所有类型的错误,也可传入元组形式的多种指定错误类型。
  • tries:定义捕获错误之后重复运行次数,默认为-1,即为无数次。
  • delay:定义每次重复运行之间的停顿时长,单位秒,默认为0,即无停顿。
  • backoff:呈指数增长的每次重复运行之间的停顿时长,需要配合delay来使用,譬如delay设置为3,backoff设置为2,则第一次间隔为3*2^0=3秒,第二次3*2^1=6秒,第三次3*2^2=12秒,以此类推,默认为1。
  • max_delay:定义backoff和delay配合下出现的等待时间上限,当delay*backoff**n大于max_delay时,等待间隔固定为该值而不再增长。

附录:git源码

四、总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。

您可能感兴趣的文章:
  • Python重试库Retrying和Tenacity的实现
  • Python中网络请求中Retry策略实现方式
  • Python Requests.post()请求失败时的retry设置方式
  • python安装包出现Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None))问题解决
  • python中可以发生异常自动重试库retrying
  • python包实现 retrying 重复回调操作

相关文章

精彩推荐