`

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黑魔法手册.zip

    Python黑魔法手册 关于主题本书是专门介绍Python黑魔法玩法的电子书。包括少有人知的一些Python冷门知识,Python Shell的多样玩法,各种令人疯狂的Python炫技操作,Python的超详细进阶知识阅读,还有不断完善适合...

    Python-Python黑魔法实现集锦

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

    Python装饰器-失败用例自动重试Python装饰器-失败用例自动重试Python装饰器-失败用例自动重试Python装饰器-失败用例自动重试Python装饰

    Python装饰器-失败用例自动重试

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

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

    基于Python与JavaScript的Python黑魔法指南设计源码

    本项目提供的是一套基于Python与JavaScript的Python黑魔法指南设计源码,它不仅为Python开发者提供了深入探索语言特性的机会,同时也展示了如何在实际开发中融合JavaScript的技术和思想。 该指南设计源码共整合了...

    基于Python黑魔法原理的Python编程技巧设计源码

    项目以Python黑魔法原理为基础,这种原理通常被用来形容那些不为初学者所知的高级技术,这些技术在提高编程效率和解决复杂问题方面具有重要作用。项目集合了220个文件,包含多种文件格式,反映了编程技巧的多样性。 ...

    Python 黑魔法指南 v1.0

    书名叫做《Python 黑魔法手册》,该手册的作者(明哥)是一个从事云计算多年的 Python 重度用户,它把自已多年的 Python 编码经验整理成小册子,没有长篇大论,半天就能全能掌握,让你一天就能收获别人一年的技能及...

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

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

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

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

    Python 黑魔法 v3.0.pdf

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

    Python的重试库.zip

    Tenacity是一个强大而灵活的Python重试库,它允许开发者自定义重试策略,例如通过设置最大重试次数、重试间隔时间、重试条件等。利用Tenacity库,开发者可以很轻易地为那些可能会因为各种临时问题而失败的函数或方法...

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

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

    Python 黑魔法手册-Python开发

    Python 黑魔法手册 在线阅读 在线阅读:《Python 黑魔法指南》 目录大纲 (以下链接无效,请前往 PDF 进行阅读) 第一章:魔法冷知识 1.1 默默无闻的省略号很好用 1.2 使用 end 来结束代码块 1.3 可直接运行的 ...

    Python 装饰器 高级用法

    2. 编写重试装饰器,支持设置重试次数和延迟时间 3. 创建类型检查装饰器,验证函数参数类型 4. 实现单例模式类装饰器 5. 开发路由注册装饰器(模拟Flask路由系统) 6. 设计并发限制装饰器(控制同时执行线程数) 7. ...

    python魔法方法和装饰器.xmind

    python魔法方法和装饰器.xmind

Global site tag (gtag.js) - Google Analytics