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 集合(set)类型的操作——并交差
Jun 30 Python
Pycharm编辑器技巧之自动导入模块详解
Jul 18 Python
Python Socket使用实例
Dec 18 Python
解析Python中的eval()、exec()及其相关函数
Dec 20 Python
Python读取properties配置文件操作示例
Mar 29 Python
使用matplotlib画散点图的方法
May 25 Python
python 遍历列表提取下标和值的实例
Dec 25 Python
python 串口读取+存储+输出处理实例
Dec 26 Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 Python
什么是python的列表推导式
May 26 Python
Python 操作SQLite数据库的示例
Oct 16 Python
Python批量删除mysql中千万级大量数据的脚本分享
Dec 03 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
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
jquery分页插件jpaginate在IE中不兼容问题
2014/04/22 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
JavaScript实现单击下拉框选择直接跳转页面的方法
2015/07/02 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
BootStrap使用file-input插件上传图片的方法
2016/09/05 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
微信小程序-获得用户输入内容
2017/02/13 Javascript
详解nodejs操作mongodb数据库封装DB类
2017/04/10 NodeJs
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
zTree jQuery 树插件的使用(实例讲解)
2017/09/25 jQuery
深入理解 webpack 文件打包机制(小结)
2018/01/08 Javascript
详解JS函数stack size计算方法
2018/06/18 Javascript
为vue项目自动设置请求状态的配置方法
2019/06/09 Javascript
JS多个表单数据提交下的serialize()应用实例分析
2019/08/27 Javascript
vue 实现input表单元素的disabled示例
2019/10/28 Javascript
微信小程序canvas实现签名功能
2021/01/19 Javascript
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
python用模块zlib压缩与解压字符串和文件的方法
2016/12/16 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
C#实现启动一个进程
2016/10/01 面试题
乡镇三项教育实施方案
2014/03/30 职场文书
会计学自荐信
2014/06/03 职场文书
员工生日会策划方案
2014/06/14 职场文书
反对四风问题自我剖析材料
2014/09/29 职场文书
2015年度个人业务工作总结
2015/04/27 职场文书
2016年会领导致辞稿
2015/07/29 职场文书
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python
Pycharm远程调试和MySQL数据库授权问题
2022/03/18 MySQL