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判断一个集合是否包含了另外一个集合中所有项的方法
Jun 30 Python
Python中最大最小赋值小技巧(分享)
Dec 23 Python
python如何定义带参数的装饰器
Mar 20 Python
Flask框架通过Flask_login实现用户登录功能示例
Jul 17 Python
Flask框架Flask-Principal基本用法实例分析
Jul 23 Python
django开发post接口简单案例,获取参数值的方法
Dec 11 Python
Python @property使用方法解析
Sep 17 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
Dec 04 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
Mar 19 Python
pyecharts调整图例与各板块的位置间距实例
May 16 Python
在tensorflow以及keras安装目录查询操作(windows下)
Jun 19 Python
如何基于Python Matplotlib实现网格动画
Jul 20 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
《一拳超人》埼玉一拳下去,他们存在了800年毫无意义!
2020/03/02 日漫
php5.4传引用时报错问题分析
2016/01/22 PHP
PHP错误处理函数
2016/04/03 PHP
Yii中的relations数据关联查询及统计功能用法详解
2016/07/14 PHP
兼容ie和firefox js关闭代码
2008/12/11 Javascript
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
jquery动画3.创建一个带遮罩效果的图片走廊
2012/08/24 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
javascript中select下拉框的用法总结
2016/01/07 Javascript
js实现的页面矩阵图形变换特效
2016/01/26 Javascript
浅谈JavaScript的全局变量与局部变量
2016/06/10 Javascript
javascript this详细介绍
2016/09/19 Javascript
Javascript实现图片懒加载插件的方法
2016/10/20 Javascript
老生常谈js中0到底是 true 还是 false
2017/03/08 Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
2017/11/21 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
javascript和php使用ajax通信传递JSON的实例
2018/08/21 Javascript
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
Laravel admin实现消息提醒、播放音频功能
2019/07/10 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
微信小程序接入腾讯云验证码的方法步骤
2020/01/07 Javascript
jQuery实现放大镜案例
2020/10/19 jQuery
[02:56]DOTA2上海特锦赛小组赛解说FreeAgain采访花絮
2016/02/27 DOTA
python爬虫获取京东手机图片的图文教程
2017/12/29 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
python 如何引入协程和原理分析
2020/11/30 Python
Topman美国官网:英国著名的国际平价时尚男装品牌
2017/12/22 全球购物
我们是伦敦女孩:WalG
2018/01/08 全球购物
解决方案设计综合面试题
2015/08/31 面试题
写给爸爸的道歉信
2014/01/15 职场文书
申论倡议书范文
2014/05/13 职场文书
车间统计员岗位职责
2015/04/14 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
2016年先进班集体事迹材料
2016/02/26 职场文书
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS