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

 更新时间:2018年04月24日 08:50:19   作者:无边无忌  
retrying是一个python的重试包,可以用来自动重试一些可能运行失败的程序段。这篇文章主要介绍了python自动重试第三方包retrying的方法,需要的朋友参考下吧

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 selenium的安装和下载谷歌浏览器镜像驱动

    Python selenium的安装和下载谷歌浏览器镜像驱动

    Selenium是一个用于web自动化测试的框架,在使用Ajax请求数据的页面中,会出现 sign ,token等密钥,借助使用Selenium框架来实现数据爬取很不错,本文给大家介绍Python selenium的安装和下载谷歌浏览器镜像驱动,需要的朋友可以参考下
    2022-11-11
  • PyCharm License Activation激活码失效问题的解决方法(图文详解)

    PyCharm License Activation激活码失效问题的解决方法(图文详解)

    这篇文章主要介绍了PyCharm License Activation激活码失效问题的解决方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Python 几行代码即可实现人脸识别

    Python 几行代码即可实现人脸识别

    Python中实现人脸识别功能有多种方法,依赖于python胶水语言的特性,我们通过调用包可以快速准确的达成这一目的,本文给大家分享使用Python实现简单的人脸识别功能的操作步骤,感兴趣的朋友一起看看吧
    2022-02-02
  • 用60行代码实现Python自动抢微信红包

    用60行代码实现Python自动抢微信红包

    这篇文章主要介绍了用60行代码实现Python自动抢微信红包,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 利用Python Django实现简单博客系统

    利用Python Django实现简单博客系统

    这篇文章主要介绍了利用Python Django实现简单博客系统,文中有非常详细的代码示例,对正在学习python的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • numpy按列连接两个维数不同的数组方式

    numpy按列连接两个维数不同的数组方式

    今天小编就为大家分享一篇numpy按列连接两个维数不同的数组方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python的Tkinter点击按钮触发事件的例子

    Python的Tkinter点击按钮触发事件的例子

    今天小编就为大家分享一篇Python的Tkinter点击按钮触发事件的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • pyqt5的QComboBox 使用模板的具体方法

    pyqt5的QComboBox 使用模板的具体方法

    这篇文章主要介绍了pyqt5的QComboBox 使用模板的具体方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Python中使用bidict模块双向字典结构的奇技淫巧

    Python中使用bidict模块双向字典结构的奇技淫巧

    bidict模块通过一对一映射结构的处理为Pyhton带来双向字典,能够更加利用Python的切片功能,这里我们就来学习Python中使用bidict模块双向字典结构的奇技淫巧:
    2016-07-07
  • python实现维吉尼亚算法

    python实现维吉尼亚算法

    这篇文章主要为大家详细介绍了python编程实现维吉尼亚算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03

最新评论