python自动重试第三方包retrying模块的方法


Posted in Python onApril 24, 2018

retrying是一个python的重试包,可以用来自动重试一些可能运行失败的程序段,retrying提供一个装饰器函数retry,被装饰的函数就会在运行失败的情况下重新执行,默认只要一直报错就会不断重试。

最近写了一个爬虫,需要连接国外的一个网站,经常出现掉线的情况,自己写了一个自动重连的代码,但感觉不够简洁。。。

后来就上万能的github,找到了一个第三包,基本能满足我的要求。这个第三方包就是retrying.

我的需求就是每当出现request相关异常的时候,就自动重来,上限连接10次;使用代码如下:

from retrying import retry 
def is_request_exception(e):
   return issubclass(type(e),RequestException)
 @retry(retry_on_exception=is_request_exception,wrap_exception=False, stop_max_attempt_number=10)
 def request_get(url, timeout=120):
   return requests.get(url, timeout=120)

刚开始用的时候,也遇到一些坑,就是在request_get用了try..except,导致不成功。后来删除就可以了。。。

我理解,在retring包中,已经有exception处理了,如果你的代码中有了exception处理,retring就没有捕获异常,就没法达到期望的结果了。

retrying还有非常多的自定义参数,如果等待时长控制,总共等待时间控制等等,暂时还没有这么特别的要求,等需要的时候,我再去研究一下。

总结

以上所述是小编给大家介绍的python自动重试第三方包retrying模块的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
使用python编写android截屏脚本双击运行即可
Jul 21 Python
Python通过递归遍历出集合中所有元素的方法
Feb 25 Python
Python2.x中文乱码问题解决方法
Jun 02 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
Jul 11 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
Sep 28 Python
Odoo中如何生成唯一不重复的序列号详解
Feb 10 Python
Python定义二叉树及4种遍历方法实例详解
Jul 05 Python
Python告诉你木马程序的键盘记录原理
Feb 02 Python
学python安装的软件总结
Oct 12 Python
Python 内置函数globals()和locals()对比详解
Dec 23 Python
执行Python程序时模块报错问题
Mar 26 Python
python中filter,map,reduce的作用
Jun 10 Python
python3+PyQt5泛型委托详解
Apr 24 #Python
python去除扩展名的实例讲解
Apr 23 #Python
python3 遍历删除特定后缀名文件的方法
Apr 23 #Python
将TensorFlow的模型网络导出为单个文件的方法
Apr 23 #Python
tensorflow1.0学习之模型的保存与恢复(Saver)
Apr 23 #Python
tensorflow 使用flags定义命令行参数的方法
Apr 23 #Python
Tensorflow之Saver的用法详解
Apr 23 #Python
You might like
不用数据库的多用户文件自由上传投票系统(2)
2006/10/09 PHP
php计算两个整数的最大公约数常用算法小结
2015/03/05 PHP
php中JSON的使用方法
2015/04/30 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
解决FLASH需要点击激活的代码
2006/12/20 Javascript
JavaScript中出现乱码的处理心得
2009/12/24 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
jQuery的bind()方法使用详解
2015/07/15 Javascript
jQuery使用经验小技巧(推荐)
2016/05/31 Javascript
Vue学习之路之登录注册实例代码
2017/07/06 Javascript
react学习笔记之state以及setState的使用
2017/12/07 Javascript
vue iview实现动态路由和权限验证功能
2018/04/17 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
Vue实现页面添加水印功能
2019/11/09 Javascript
详解vue-flickity的fullScreen功能实现
2020/04/07 Javascript
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
快速入手Python字符编码
2016/08/03 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
python调用支付宝支付接口流程
2019/08/15 Python
使用OpCode绕过Python沙箱的方法详解
2019/09/03 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
浅谈Selenium 控制浏览器的常用方法
2020/12/04 Python
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
2012/12/10 HTML / CSS
DERMAdoctor官网:美国著名皮肤护理品牌
2019/07/06 全球购物
一套带网友答案的.NET笔试题
2016/12/06 面试题
工程地质勘察专业大学生求职信
2013/10/13 职场文书
公司营业员的自我评价
2014/03/04 职场文书
班风口号
2014/06/18 职场文书
住宿生擅自离校检讨书
2014/09/22 职场文书
母婴行业实体、电商模式全面解析
2019/08/01 职场文书
MySQL学习必备条件查询数据
2022/03/25 MySQL