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两个整数相除得到浮点数值的方法
Mar 18 Python
python pandas修改列属性的方法详解
Jun 09 Python
pandas重新生成索引的方法
Nov 06 Python
python使用循环打印所有三位数水仙花数的实例
Nov 13 Python
Window环境下Scrapy开发环境搭建
Nov 18 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
Apr 15 Python
python try except返回异常的信息字符串代码实例
Aug 15 Python
Django中自定义模型管理器(Manager)及方法
Sep 23 Python
Python3如何在Windows和Linux上打包
Feb 25 Python
Python 在局部变量域中执行代码
Aug 07 Python
Django restful framework生成API文档过程详解
Nov 12 Python
Django分页器的用法你都了解吗
May 26 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
PHP IN_ARRAY 函数使用注意事项
2010/07/24 PHP
将一维或多维的数组连接成一个字符串的php代码
2010/08/08 PHP
PHP源代码数组统计count分析
2011/08/02 PHP
php 利用array_slice函数获取随机数组或前几条数据
2015/09/30 PHP
php+ajax无刷新分页实例详解
2015/12/07 PHP
Javascript实现CheckBox的全选与取消全选的代码
2010/07/20 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
2012/05/13 Javascript
js 获取后台的字段 改变 checkbox的被选中的状态 代码
2013/06/05 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
在JavaScript中使用JSON数据
2016/02/15 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
JavaScript设计模式之工厂模式简单实例教程
2018/07/03 Javascript
vue watch深度监听对象实现数据联动效果
2018/08/16 Javascript
解决vue路由后界面没有变化,但是链接有的问题
2018/09/01 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
vue中音频wavesurfer.js的使用方法
2020/02/20 Vue.js
JavaScript实现猜数字游戏
2020/05/20 Javascript
[43:51]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS Secret
2018/03/31 DOTA
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
Python计算三维矢量幅度的方法
2015/06/15 Python
python线程池threadpool使用篇
2018/04/27 Python
深入浅析Python的类
2018/06/22 Python
解决pycharm运行时interpreter为空的问题
2018/10/29 Python
Python 移动光标位置的方法
2019/01/20 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
Python Django 前后端分离 API的方法
2019/08/28 Python
校园歌手大赛策划书
2014/01/17 职场文书
班级年度安全计划书
2014/05/01 职场文书
演讲稿的格式及范文
2014/08/22 职场文书
质量整改报告范文
2014/11/08 职场文书
劳模事迹材料范文
2014/12/24 职场文书
Python数据分析之pandas读取数据
2021/06/02 Python
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL
MySQL8.0 Undo Tablespace管理详解
2022/06/16 MySQL