介绍

tenacity is an Apache 2.0 licensed general-purpose retrying library, written in Python, to simplify the task of adding retry behavior to just about anything. It originates from a fork of retrying which is sadly no longer maintained. Tenacity isn’t api compatible with retrying but adds significant new functionality and fixes a number of longstanding bugs.

安装

pip install tenacity

文档:

https://tenacity.readthedocs.io/en/latest/

demo:

In [13]: import random...: from tenacity import retry...:...: @retry...: def do_something_unreliable():...:     value = random.randint(0,10)...:     if value > 1:...:         raise IOError("Broken sauce, everything is hosed!!!111one")...:     else:...:         print(value)...:         return "Awesome sauce!"...:...: print(do_something_unreliable())
1
Awesome sauce!In [14]: import random...: from tenacity import retry...:...: @retry...: def do_something_unreliable():...:     value = random.randint(0,10)...:     if value > 1:...:         raise IOError("Broken sauce, everything is hosed!!!111one")...:     else:...:         print(value)...:         return "Awesome sauce!"...:...: print(do_something_unreliable())
1
Awesome sauce!In [15]: import random...: from tenacity import retry...:...: @retry...: def do_something_unreliable():...:     value = random.randint(0,10)...:     if value > 1:...:         raise IOError("Broken sauce, everything is hosed!!!111one")...:     else:...:         print(value)...:         return "Awesome sauce!"...:...: print(do_something_unreliable())
0
Awesome sauce!In [16]: import random...: from tenacity import retry...:...: @retry...: def do_something_unreliable():...:     value = random.randint(0,10)...:     if value > 1:...:         raise IOError("Broken sauce, everything is hosed!!!111one")...:     else:...:         print(value)...:         return "Awesome sauce!"...:...: print(do_something_unreliable())
1
Awesome sauce!

源代码:

https://github.com/jd/tenacity

类似库:retry

pip install retry

自己可以参考retry源代码自己实现

requests多次尝试实现:

https://www.cnblogs.com/eshizhan/p/5072626.html

转载于:https://www.cnblogs.com/shengulong/p/10373597.html

python的重试库tenacity用法以及类似库retry、requests实现相关推荐

  1. Python pip安装包指令用法及安装库检索

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.PIP指令用法: 在线安装方式 离线安装方式: 二.pip 安装库都有什么,如何检索? 总结 前言 pip 是py ...

  2. python基础和第三方库 笔记(python基础完结包括高级用法,第三方库持续更新中...)

    python基础 注:本笔记面向有一定基础的人 本笔记是本人快速复习python过程中记录的,不适合零基础的人学习python的主工具,可以作为辅工具,本笔记记录了入门阶段常用操作,如有错误的地方,希 ...

  3. Python binarytree库的用法介绍

    Python binarytree库的用法介绍 binarytree 库是一个 Python 的第三方库.这个库实现了一些二叉树相关的常用方法,使用二叉树时,可以直接调用,不需要再自己实现. 同时,b ...

  4. python groupby用法_Python 标准库实践之合并字典组成的列表

    作者 | 陈祥安 来源 | Python学习开发 最近做了个数据合并的需求这里记录下: 要求如下: dict_of_list1 = [{"name": "zhangsan ...

  5. tenacity 报错_关于Python错误重试方法总结

    前言 Tenacity是一个 Apache 2.0授权的通用重试库,用 Python 编写,用于简化向几乎所有内容添加重试行为的任务.它起源于一个重新尝试的分支,可惜这个分支已经不复存在了. 使用Te ...

  6. python gui界面设置数据储存在哪里_我整理的一些常用Python库!让你快速记住这些库的用法!建议收藏...

    Python的一大特色是其丰富的模块,基本上只要你能想到的常见的开发需求,都能找到别人已经实现的库直接使用,或者相关工具或则框架来辅助实现.但这对于新人来说也是一个问题:这么多库,我要从哪里学起?怎样 ...

  7. python xpath语法-Python爬虫之XPath语法和lxml库的用法

    本来打算写的标题是XPath语法,但是想了一下Python中的解析库lxml,使用的是Xpath语法,同样也是效率比较高的解析方法,所以就写成了XPath语法和lxml库的用法 安装 为什么要用这个库 ...

  8. python xpath语法-Python爬虫基础之XPath语法与lxml库的用法详解

    前言 本来打算写的标题是XPath语法,但是想了一下Python中的解析库lxml,使用的是Xpath语法,同样也是效率比较高的解析方法,所以就写成了XPath语法和lxml库的用法 XPath 即为 ...

  9. Python爬虫入门(4):Urllib库的高级用法

    Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...

  10. python爬虫---requests库的用法

    requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多 因为是第三方库,所以使用前需要cmd安装 pip install requests 安装完成后import一下 ...

最新文章

  1. IE9正式版已完成 截图曝光
  2. xxl-job使用实例
  3. python首行代码import *,from * import * 解析
  4. Client does not support authentication protocol requested by server;
  5. linq查询不包含某个值的记录_【翻译】C#表达式中的动态查询
  6. java 类型推导_Java10类型推导
  7. python中实例和对象的区别_通过Python中对象实例的属性比较对象实例是否相等
  8. Linux下idea 配置Android SDK
  9. IT人:如何预防久坐伤身?
  10. (转)用AGG实现高质量图形输出(四)
  11. 超级强悍的PHP代码编辑器PHPstorm及配置
  12. 使用小米蓝牙耳机airdots青春版的感受及单耳双耳配对教程(转载)
  13. 软件测试系统主要包括哪几项内容,系统测试包含哪几部分?
  14. 运营必备 - CPA、CPS、CPC、CPM推广是什么意思?
  15. 【Android驱动】屏和TP谁先休眠的问题
  16. maven中filtering的使用
  17. 积木式移动互联网App Hybrid框架-modular
  18. 福州市建筑物矢量数据(Shp格式+带高度)
  19. 跨境电商四大推广路径都有哪些?站斧浏览器带你挑选最适合你的引流渠道
  20. C中的 feof() 和 EOF

热门文章

  1. hive對於數據是懶加載的_05-配置数据库的远程连接 创建hive数据库的时候要选择latin1...
  2. C++线程中的几类锁
  3. vs2017+配置工程的编译路径(输出目录和中间目录)
  4. 游戏开发之类的初始化成员列表和委托构造函数(C++基础)
  5. STP重新收敛过程和补充内容
  6. LDAP密码认证例子
  7. mysql备份与恢复的一些方法
  8. Away3D 的实体收集器流程2
  9. js 小数自动补0_JS自定义保留小数,并支持补零(四舍五入)
  10. 设计模式之——静态代理模式