`

python黑魔法异常重试的次数,间隔的装饰器涵数

阅读更多
起因:
   在github找到一个库retrying
   但这个库一点也不好用,好久没维护了
   索性,造一个
   还可以扩展timeout
from functools import wraps
from threading import Event


def retry_exception(retry_count=0, interval_wait=0):
    def wrap(f):
        @wraps(f)
        def func(*args, **kwargs):
            try:
                return f(*args, **kwargs)
            except Exception as e:
                if retry_count == 0:
                    return str(e)
                if retry_count >= 1:
                    count = retry_count
                    while 1:
                        Event().wait(interval_wait)
                        try:
                            count = count - 1
                            return f(*args, **kwargs)
                        except Exception as e:
                            if count == 0:
                                return str(e)
                            continue
        return func
    return wrap


@retry_exception(retry_count=3, interval_wait=3)
def tt():
    a = 1
    if a != 2:
        raise Exception('i am exception')
    print(a)

print(tt()) 

1
0
分享到:
评论
1 楼 phncz310 2017-11-23  
厉害了,我的哥

相关推荐

    Python黑魔法指南v3.01

    《Python黑魔法指南v3.01》是一本探索Python编程中不常用或不为人知特性的书籍。本文将从书中的几个章节提取关键知识点进行详细介绍。 1.1 **默默无闻的省略号(...)** 在Python中,省略号`...`是一个特殊的标识符...

    Python 黑魔法指南 v3.0(1).tmp

    Python 黑魔法指南 v3.0(1)

    Python黑魔法手册 2.0 文档.pdf

    Python黑魔法手册 2.0 文档.pdf 本资源是一本关于 Python 编程的电子教程,涵盖了 Python 编程的一些冷门知识、魔法知识和开发技巧。本文档共有多章,第一章记录了一些大多数开发者并不知晓的冷知识,内容基本延续 ...

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

    装饰器内部使用了一个字典`count`来跟踪重试的次数,每次发生异常时,`count['num']`会递增1,直到达到最大重试次数。 当`wrapped`函数执行时,如果`try`块中的代码(即调用原始函数`function`)抛出异常,且`count...

    Python-Python黑魔法实现集锦

    在Python编程领域,"黑魔法"通常指的是那些不常见的、高级的或者鲜为人知的特性、库或技巧,这些能够帮助开发者以独特的方式解决问题。在这个名为"Sorcery-master"的压缩包中,我们可能找到了一系列关于Python黑魔法...

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

    这个装饰器定义了一个`retry`函数,它可以接受几个参数,如最大重试次数`max_retries`、初始延迟`delay`、延迟递增步长`step`、触发重试的异常类型`exceptions`、延迟执行的方法`sleep`、异常回调函数`callback`以及...

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

    通过定义一系列策略,如等待时间、最大尝试次数等,Tenacity会在遇到预期的异常时自动重试操作,直到成功或者达到预设的最大尝试次数。 以下是一些主要的Tenacity功能和知识点: 1. **基本使用**:使用`@retry`...

    基于Python及HTML/JavaScript的Python黑魔法与炫技进阶设计源码

    该项目是一份专注于Python进阶技巧的源码集,共计287个文件,...内容丰富,包括Python黑魔法、Shell技巧、炫技操作、详细进阶知识,以及一系列适用于Python开发者的实用开发技巧,适合所有层次的Python开发者学习参考。

    1小时解密程序员的黑魔法Python

    "1小时解密程序员的黑魔法Python"这个主题,旨在短时间内揭示Python的魅力,帮助学习者快速理解并掌握其核心概念。 Python的核心特点在于其强大的标准库和丰富的第三方库,如NumPy用于科学计算,Pandas用于数据处理...

    Python 黑魔法 v3.0.pdf

    《Python 黑魔法 v3.0》是一本深入探讨Python编程技巧和不常用特性的书籍。作者王炳明通过更新迭代,将最新的Python知识和独特的编程经验分享给读者。本书内容涵盖了一些Python中的“魔法”特性,这些特性可能不常被...

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

    在使用重试机制时,务必要根据具体的场景来设计和应用重试逻辑。特别是在处理复杂数据结构...通过灵活使用重试装饰器,可以让你的代码在面对网络波动等不确定性时更加健壮。关注【程序员的开发手册】让您少走十年弯路。

    Python黑魔法指南(手册)v3.0中文PDF完整版最新版本

    《Python 黑魔法手册》是一份由资深云计算领域专家精心编撰的指南,汇集了作者多年深耕Python编程的丰富经验。该手册以简洁精炼的形式呈现,无需冗长的阅读,读者可在半天内快速掌握其内容,从而在一天之内获得相当...

    Python黑魔法之描述符

    Descriptors(描述符)是Python语言中一个深奥但很重要的一个黑魔法,它被广泛应用于Python语言的内核,熟练掌握描述符将会为Python程序员的工具箱添加一个额外的技巧。本文我将讲述描述符的定义以及一些常见的场景,...

    Python装饰器使用你可能不知道的几种姿势

    这个装饰器会检查函数返回的结果,如果返回了预设的错误码,那么装饰器会尝试重新调用原函数,直到达到一定的重试次数限制为止。 再者,给装饰器传入参数也是装饰器使用中的一种高级用法。这种用法允许我们在定义...

    用Python画出一个魔法阵

    用Python画出一个魔法阵 turtle

    python黑帽子编程,部分实现的代码

    python黑帽子编程,部分实现的代码

    python黑帽子(英文)+pyhton灰帽子中文Pdf

    《Python黑帽子》和《Python灰帽子》是两本深入探讨Python在网络安全领域的应用的书籍。这两本书分别从不同的视角,即黑客攻击和防御的角度,阐述了Python编程在信息安全中的重要性和实用性。 《Python黑帽子》...

    Python黑帽子带源码

    《Python黑帽子带源码》是一本专注于网络安全与渗透测试的书籍,主要针对Python编程语言在这一领域的应用。书中的“黑帽子”概念通常指的是利用技术手段进行非法或不道德的网络活动,但在此,它更多的是指对系统安全...

    Python装饰器课程的PPT课件和源代码

    !!!CSDN的一个特性: 即使我...关于Python装饰器课程的课件代码相关文件, 文字版讲义见: https://blog.csdn.net/ncepu_Chen/article/details/106075394 视频版本讲义见: https://www.bilibili.com/video/BV1SZ4y1s7cv/

Global site tag (gtag.js) - Google Analytics