python自定义重试装饰器

Posted Mars.wang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python自定义重试装饰器相关的知识,希望对你有一定的参考价值。

 

import functools
import time


# 最大重试次数/重试间隔
def retry(stop_max_attempt_number=10, wait_fixed=2):
    def decorator(func):
        @functools.wraps(func)
        def wrapper(*args, **kw):
            retry_num = 0
            while retry_num < stop_max_attempt_number:
                rs = None
                try:
                    rs = func(*args, **kw)
                    break
                except Exception:
                    retry_num += 1
                    time.sleep(wait_fixed)
                finally:
                    if rs:
                        return rs

        return wrapper

    return decorator

 

以上是关于python自定义重试装饰器的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Spring Datasource 创建自定义重试逻辑?

python使用上下文对代码片段进行计时,非装饰器

python重试装饰器的简单实现

怎么在Python装饰器中自定义功能呢?用这种方法让你“为所欲为”

怎么在Python装饰器中自定义功能呢?用这种方法让你“为所欲为”

Grails 安全插件自定义重定向