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 相关文章推荐
Python2和Python3中print的用法示例总结
Oct 25 Python
Python爬虫爬取一个网页上的图片地址实例代码
Jan 16 Python
新手常见6种的python报错及解决方法
Mar 09 Python
Python 实现在文件中的每一行添加一个逗号
Apr 29 Python
Python中作用域的深入讲解
Dec 10 Python
Python读取文件内容为字符串的方法(多种方法详解)
Mar 04 Python
Pandas读取csv时如何设置列名
Jun 02 Python
pytorch判断是否cuda 判断变量类型方式
Jun 23 Python
Python中Selenium库使用教程详解
Jul 23 Python
如何查看python关键字
Jan 17 Python
使用Python的开发框架Brownie部署以太坊智能合约
May 28 Python
python神经网络学习 使用Keras进行简单分类
May 04 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
我的论坛源代码(四)
2006/10/09 PHP
Redis使用Eval多个键值自增的操作实例
2016/11/04 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
JavaScript Base64编码和解码,实现URL参数传递。
2006/09/18 Javascript
JavaScript去掉空格的方法集合
2010/12/28 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
2014/06/05 Javascript
javascript组合使用构造函数模式和原型模式实例
2015/06/04 Javascript
js使用html2canvas实现屏幕截取的示例代码
2017/08/28 Javascript
vue.js如何将echarts封装为组件一键使用详解
2017/10/10 Javascript
javascript计算对象长度的方法
2017/10/25 Javascript
Vue.js添加组件操作示例
2018/06/13 Javascript
Vue实现表格批量审核功能实例代码
2019/05/28 Javascript
Vue利用Blob下载原生二进制数组文件
2019/09/25 Javascript
vue常用高阶函数及综合实例
2021/02/25 Vue.js
[06:37]2014DOTA2国际邀请赛 昔日王者渴望重回巅峰
2014/07/12 DOTA
零基础写python爬虫之抓取百度贴吧代码分享
2014/11/06 Python
Python编程实现双击更新所有已安装python模块的方法
2017/06/05 Python
python的dataframe和matrix的互换方法
2018/04/11 Python
Django 查询数据库并返回页面的例子
2019/08/12 Python
python文件操作的简单方法总结
2019/11/07 Python
Python解析json代码实例解析
2019/11/25 Python
深入了解Python enumerate和zip
2020/07/16 Python
python实现取余操作的简单实例
2020/08/16 Python
pycharm 添加解释器的方法步骤
2020/08/31 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
德国电子商城:ComputerUniverse
2017/04/21 全球购物
应届生保险求职信
2013/11/11 职场文书
经典导游欢迎词
2015/01/26 职场文书
办公室主任个人总结
2015/02/28 职场文书
学习委员竞选稿
2015/11/20 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书