2025年python中retry的简单用法

python中retry的简单用法一 简介 retry 是一个用于错误处理的模块 功能类似 try except 但更加快捷方便 本文就将简单地介绍一下 retry 的基本用法 二 基本用法 retry 作为装饰器进行使用 不传入参数时功能如下例所示 from retry import retry retry def

大家好,我是讯享网,很高兴认识大家。

一、简介
  retry是一个用于错误处理的模块,功能类似try-except,但更加快捷方便,本文就将简单地介绍一下retry的基本用法。
二、基本用法
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*backoffn大于max_delay时,等待间隔固定为该值而不再增长。

附录:git源码

小讯
上一篇 2025-03-18 19:11
下一篇 2025-03-23 07:06

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/46521.html