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

from retry import retry@retry()
def make_trouble():'''Retry until succeed'''print ('retrying...')raiseif __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中retry的简单用法相关推荐

  1. python 中 feedparser的简单用法

    最近在机器学习实战中用到feedparser ,然后简单总结了一下: feedparser是python中最常用的RSS程序库,使用它我们可轻松地实现从任何 RSS 或 Atom 订阅源得到标题.链接 ...

  2. Python中的super()简单用法

    如果在子类中也定义了_init_()函数,那么该如何调用基类的_init_()函数: 方法一.明确指定 : class C(P):def __init__(self):P.__init__(self) ...

  3. python中parse.add_argument()简单用法

    argparse模块简单使用流程以及与命令行的交互 1.导入模块 2.创建解析器 3.添加参数 4.解析参数 5使用参数 完整代码 与命令行的交互 argparse 模块是 Python 内置的一个用 ...

  4. python count函数代码_python中count函数简单用法

    python中count函数简单用法 python中count函数的用法 Python count()方法 描述 Python count() 方法用于统计字符串里某个字符出现的次数.可选参数为在字符 ...

  5. python中的lambda函数用法--无需定义函数名的函数或子程序,避免代码充斥着大量单行函数

    匿名函数lambda:是指一类无需定义标识符(函数名)的函数或子程序. lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值. 要点: lambda 函数不能包含命令 包含 ...

  6. python中break怎么用_详解Python中break语句的用法

    详解Python中break语句的用法 在Python中的break语句终止当前循环,继续执行下一个语句,就像C语言中的break一样. break最常见的用途是当一些外部条件被触发,需要从一个循环中 ...

  7. python中循环语句的用法,python几种循环方式

    python中while循环的用法是什么? python while循环语句:while 判断条件(condition):执行语句(statements)--执行语句可以是单个语句或语句块. 判断条件 ...

  8. python中struct.unpack的用法

    python中struct.unpack的用法 4/25/2009 12:18:21 PM Python中按一定的格式取出某字符串中的子字符串,使用struck.unpack是非常高效的. 1. 设置 ...

  9. python中divmod函数的用法_Python中divmod函数的用法

    Python中divmod函数的用法,语言,余数,是一种,面向对象,函数 Python中divmod函数的用法 Python中divmod函数的用法 在Python中divmod函数的作用是把除数和余 ...

最新文章

  1. 什么是以太坊?它到底怎么运作的?
  2. 写给开发向产品转型的同学的3句话
  3. 8能达到go速度吗 php_相同逻辑的php与golang代码效率对比,最好语言落谁家…
  4. MTK 驱动开发(40 )---TP乱跳频原因
  5. python导入xlsx转为csv_Python 拆分工作表为单个工作簿
  6. 1.2 矩阵与线性方程组-向量空间、内积空间与线性映射
  7. disruptor:CAS实现高效(伪)无锁阻塞队列实践
  8. MATLAB秦九韶算法
  9. SetTimer函数和 KillTimer函数
  10. 利用Python批量修改多个ass字幕文件
  11. 真正免费的证件照小程序,在线一键生成标准免冠证件照,证件照底色更换,证件照尺寸修改
  12. Android图文混排
  13. php实现钟表,用html5实现一个简单的钟表外观
  14. PO,VO,DAO,BO,POJO之间的区别与解释
  15. C语言谭浩强第三版第九章例题及课后题:预处理命令
  16. Windbg串口联调
  17. sql语句 查询表中 每门课都大于80分的学生名称 根据以下三种 学习sql 中其他函数的使用
  18. 什么情况下PMP可自学?
  19. HTML5期末大作业:月饼美食网站设计——月饼美食食品模板(9页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程食品设计网页规划与设计 计食品模板设计源码
  20. 本科去向选择之一——保研

热门文章

  1. 【毕业设计】时间序列天气预测系统 - LSTM
  2. CentOS 5.4 配置本地YUM源
  3. YOLOv7 tiny 新增小目标检测层
  4. LeCun和马库斯齐喷ChatGPT:大语言模型果然是邪路?
  5. CATIA CAA二次开发---------建立用例运行环境
  6. k8s Cannot contact maven-25gxr: java.lang.InterruptedException
  7. 利用matlab/simulink绘制bode图,以及用origin绘制反正切函数
  8. iPhone XS 上的 Siri 没反应怎么办?苹果手机无法使用嘿 Siri 解决方法
  9. 【从零学Python】理解nn.Softmax(dim=1)(outputs) 与 torch.max(probs, 1)[1]
  10. IP归属地API分享