`
kanpiaoxue
  • 浏览: 1781231 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

代码的重试机制(python简单实现)

 
阅读更多
# -*-coding:utf-8-*-
'''
Created on 2015年5月27日

@author: kanpiaoxue
'''
from time import sleep

class RetryClass(object):
    def __init__(self, retryTimes, intervalTimes):
        self.retryTimes = retryTimes
        self.intervalTimes = intervalTimes
        
    def doAction(self):
        print 'doAction'
        
        retryRunCount = 0
        while True:
            try:
                self.retryAction()
                break
            except IOError, ex:
                print 'catch Exception:', IOError, ':', ex
                if retryRunCount < self.retryTimes:
                    retryRunCount += 1
                    print 'after', self.intervalTimes, 'seconds it will retry again for times:' , retryRunCount
                    sleep(self.intervalTimes)
                    continue
                else:
                    msg = 'it retry ' + str(retryRunCount) + ' times. But it does not run successfully! Please check it.'
                    raise Exception(msg)
        
    def retryAction(self):
        print 'retryAction'
        raise IOError('retryAction')

if __name__ == '__main__':
    retryTimes = 10
    intervalTimes = 1
    retry = RetryClass(retryTimes, intervalTimes)
    retry.doAction()

 

分享到:
评论

相关推荐

    使用Python的tenacity库实现异常重试机制.pdf

    `tenacity`库就是为了这个目的而设计的,它提供了一个简单而强大的方式来实现异常重试机制。 `tenacity`库的核心思想是定义重试策略,并将其应用到可能失败的方法上。通过使用`@retry`装饰器,我们可以轻松地为函数...

    python爬虫URL重试机制的实现方法(python2.7以及python3.5)

    ### Python爬虫URL重试机制实现方法 在爬虫开发过程中,经常遇到因网络不稳定、服务器响应慢等原因导致请求失败的情况。此时,采用URL重试机制可以有效提高爬虫的成功率与稳定性。本文将详细介绍如何在Python 2.7及...

    Python-Tenacity是用Python编写的通用重试库简化了对任何事情添加重试行为的任务

    这个库的核心理念是为开发者提供一个简单易用的框架,使得在Python代码中实现重试逻辑变得轻而易举。在“Python开发-其它杂项”这个标签下,Tenacity扮演着一个不可或缺的角色,帮助程序员构建更加健壮和容错的系统...

    简单的python爬虫,代码完整

    本资源提供了一个完整的Python2.7版本的简单网络爬虫代码,旨在帮助学习者理解和实践爬虫的基本原理。 首先,我们要了解Python爬虫的基本构成。一个基础的Python爬虫通常包括以下部分: 1. **URL管理器**:负责...

    python重试装饰器的简单实现方法

    Python中的装饰器是一种强大的工具,可以用来修改或增强函数、类等对象的行为。在IT行业中,特别是在处理异步任务、网络请求或者...这个装饰器可以轻松地应用到各种需要重试机制的场景,提高了代码的可维护性和可靠性。

    python aiohttp 二次封装 重试装饰器使用避坑

    在使用重试机制时,务必要根据具体的场景来设计和应用重试逻辑。特别是在处理复杂数据结构时,如,一定要确保每次重试时重新初始化这些对象,以避免难以排查的异常问题。通过灵活使用重试装饰器,可以让你的代码在...

    基于python实现上传文件到OSS代码实例

    阿里云OSS SDK提供了重试机制和错误处理,确保文件上传的可靠性。另外,为了安全性,你应该使用RAM用户而不是主账号的AccessKey进行API访问,以减少潜在的风险。 总结起来,通过Python和阿里云OSS SDK,我们可以...

    Python-riprova通用的Python库用于使用可配置的退避策略重试失败的操作

    这个库的核心功能是提供了一种优雅的方式来实现重试机制,特别是对于那些由于网络问题、临时服务中断或其他不可预测因素可能导致失败的异步任务。通过使用可配置的退避策略,riprova能够确保在遇到暂时性错误时,...

    Python自动重试HTTP连接装饰器.pdf

    总结来说,Python自动重试HTTP连接装饰器提供了一种优雅的方式来处理HTTP请求可能遇到的网络问题,通过自动重试机制提高了程序的健壮性。通过合理使用装饰器,我们可以使代码更加模块化,易于维护,同时减少因网络...

    Python-PerseveranceClojure的灵活的重试库

    Python中可以使用`retrying`库或者自定义装饰器实现重试机制。例如,`retrying`库提供了一个简单的API来定义重试条件,如最大尝试次数、重试间隔等: ```python from retrying import retry @retry(stop_max_...

    Python-行人重识别的SCPNet实现代码

    在给定的“Python-行人重识别的SCPNet实现代码”中,我们可以期待看到以下关键组成部分: 1. **数据预处理**:在训练模型之前,数据集需要被预处理,包括图像的缩放、归一化以及颜色空间的转换。行人图像通常从多个...

    python实现断文件点续传

    5. **错误处理和重试机制**:网络通信中常常会遇到各种异常,如连接中断、超时等。良好的错误处理和重试机制能确保在网络不稳定时仍能完成传输。例如,当网络连接断开时,客户端可以尝试重新连接,并继续从断点处...

    这段代码是一个Python爬虫程序,用于从百度图片搜索中抓取指定关键词的图片避开了反爬机制,超时或被屏蔽会自动重试

    这段代码是一个Python爬虫程序,用于从百度图片搜索中抓取指定关键词的图片。程序通过设置超时时间和请求头等参数,实现了对百度图片搜索结果的访问和解析。程序的主要功能包括: 1. 定义了一个名为`Crawler`的类...

    Python中异常重试的解决方案详解

    在Python编程中,异常处理是不可或缺的一部分,而异常重试机制则是为了确保程序在遇到暂时性错误时能够自我恢复,从而提高系统稳定性。本文将详细探讨Python中如何实现异常重试的解决方案。 首先,最基础的重试逻辑...

    使用Python实现批量ping操作方法

    ### 使用Python实现批量Ping操作详解 #### 背景与需求 在运维、网络管理和自动化测试等场景中,经常需要检查一...未来还可以考虑加入更多高级特性,比如支持IPv6地址、增加错误重试机制等,以适应更复杂的应用场景。

    基于python的自动化大麦网演唱会抢票程序实现

    5. **异常处理与重试机制**:由于网络不稳定、服务器繁忙等原因,请求可能会失败,因此需要编写异常处理代码,确保程序在遇到错误时能够恢复并重新尝试。 6. **模拟登录**:抢票前通常需要用户登录,Python可以通过...

    Python-一个由python写简单和容易使用的消息队列

    5. **错误处理与重试机制**:在实际应用中,需要考虑消息处理失败的情况。通过设置重试次数和延迟,可以确保消息最终被正确处理。 6. **监控与日志**:为了保证系统的稳定运行,添加监控和日志记录是必要的。你可以...

    基于MC协议实现与三菱PLC通讯的python

    此外,还要考虑到通信超时、错误处理和重试机制,以提高程序的健壮性。 MC协议还支持批量读写操作,可以一次读取或写入多个寄存器,提高通信效率。`pymc`库通常提供这样的功能,允许开发者一次性处理大量数据。 ...

    Python-Python实现自动发邮件支持HTML富文本

    在实际应用中,还可以根据需要添加错误处理和重试机制,以提高邮件发送的可靠性。 在提供的压缩包`python-emailer-master`中,可能包含了实现以上功能的完整示例代码或者一个简单的邮件发送脚本。解压后,通过阅读...

Global site tag (gtag.js) - Google Analytics