美文网首页
python 重试策略

python 重试策略

作者: 灰化肥发黑会挥发 | 来源:发表于2020-11-02 17:23 被阅读0次

python 有一个非常有意思包retrying,可以用来自动化的进行重试操作,支持的条件也比较多,基本上能满足我的日常需求。
在没有用retrying之前,我的代码结构是这样的:

    try_times = 2
    response = None
    while True:
        try:
             response = request.post(URL)
        except Exception as e:
            if try_times > 0:
                time.sleep(3)
                try_times -= 1
            else:
                    logger.info(response.json())
                    if response.json()['errno'] == 1000:
                        raise TimeoutError
                raise Exception("failed")

代码可以说是非常的不优雅。retrying支持使用装饰器来对函数单元进行处理。改造后为

    from retrying import retry
    def retry_TimeoutError(exception):
        return isinstance(exception, TimeoutError)

    @retry(stop_max_attempt_number=3,
           wait_fixed=3000,
           retry_on_exception=retry_TimeoutError)
    def retry_request_translate(self, content, input_len):
        try:
            response = requests.post(url, json=payload)
            return result
        except Exception as e:
            if response is not None:
                if response.json()['errno'] == 1000:
                    raise TimeoutError
            raise Exception("failed")

retry的参数支持:

  • stop_max_attempt_number: 最大重试次数;
  • wait_fixed: 重试之间的间隔时间,单位为毫秒;
  • retry_on_exception: 捕获特定异常才重试,例如我这里自己申明了超时的判断;
  • 其它:


    image.png

相关文章

  • python 重试策略

    python 有一个非常有意思包retrying,可以用来自动化的进行重试操作,支持的条件也比较多,基本上能满足我...

  • Nginx负载均衡小知识

    Nginx 负载均衡配置Nginx 重试次数限制Nginx 超时重试 Nginx 负载均衡 负载均衡策略 roun...

  • Python:从requests请求重试到万能重试装饰器

    今天来介绍下Python中从requests请求重试到万能重试装饰器。从requests请求重试到万能重试装饰器 ...

  • 2020-03-29 16:55 配置数据库连接复原(执行策略)

    提纲 设置失败重试(自动重试失败的数据库命令) 自定义执行策略 使用执行策略执行数据库操作 在配置数据库类型\数据...

  • Spring cloud stream 消费错误处理策略(一):

    重试策略 重试策略就是消费失败后隔一段时间我在消费,这种方案一般是硬卧环境因素导致的失败情况,或者网络问题导致的消...

  • Exception和Error有什么区别?

    1.异常:这种情况下的异常,可以通过完善任务重试机制,当执行异常时,保存当前任务信息加入重试队列。重试的策略根据业...

  • Python重试的多重方法

    没人能保证自己的的程序没BUG,所以重试非常有必要。 下面说下我知道的几种Python重试方法。 装饰器 这是最最...

  • system-auth_CentOS 7

    密码设置以及登录控制文件。可以修改密码策略和登录失败重试策略。 auth 组件:认证接口,要求并验证密码accou...

  • 重试机制(一):Guava Retry

    项目中经常会遇到需要重试的场景,例如读取数据库,调用远程api等。可以自己来实现重试策略,但是不用重复造轮子,有很...

  • Python 重试包

    为了避免由于一些网络或等其他不可控因素,而引起的功能性问题。比如在发送请求时,会因为网络不稳定,往往会有请求超时的...

网友评论

      本文标题:python 重试策略

      本文链接:https://www.haomeiwen.com/subject/juvmvktx.html