gpt4 book ai didi

python-requests - 在 Python 中使用随机退避延迟重试失败的 http 请求?

转载 作者:行者123 更新时间:2023-12-05 04:09:02 27 4
gpt4 key购买 nike

可通过 urllib3 和请求模块灵活支持在 Python 中重试失败的 http 请求,如 Can I set max_retries for requests.request? 所述。默认选项允许指数退避方法。

但我会有很多客户端与我的服务器并行运行,我希望客户端通过以不同的速率退出来帮助管理负载,随机。一个较早的 retry_callable 参数,用于在生成 Retry 对象时提供任意回调函数,如 A look at the new retry behavior in urllib3 | Kevin Burke 中所述。没有进入最终代码。有没有其他方法可以完成我正在寻找的东西,而无需通过他帮助我们避免的那种 try-except block 来实现自己重试的复杂性?

最佳答案

这已经存在了一段时间,但无论如何:最直接的解决方案是继承Retry,重载.get_backoff_time(),例如

class RandomisedRetry(Retry):
def get_backoff_time(self):
from random import random
return random() * super().get_backoff_time()

由于 .get_backoff_time()Retry 的公共(public) API 的一部分,我认为它应该保留一段时间。

实际上,作为旁注,传递 lambda 通常是一个穷人的继承,因此在考虑 lambda 时,请考虑子类化。

关于python-requests - 在 Python 中使用随机退避延迟重试失败的 http 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46760228/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com