gpt4 book ai didi

session - 是否可以设置同一 session 中所有池连接之间共享的最大重试次数?

转载 作者:行者123 更新时间:2023-12-02 10:07:39 25 4
gpt4 key购买 nike

目前,我执行以下操作来设置 grequest 包装器的最大连接重试次数:

self._s = Session()
retries = Retry(total=5, status_forcelist=[500, 502, 503, 504])
self._s.mount('http://, HTTPAdapter(max_retries=retries))

然后,我创建一堆 grequest 对象,并将 session self._s 作为参数之一。例如,创建一组 GET 请求将使用如下方式完成:

requests = [grequests.get(url, ..., 'session': self._s')]

最后,这些最终都是使用 grequests.map(requests, ...) 发出的。

问题是我想要一种方法来使最大重试次数持续存在并在连接池的所有连接之间共享。重试似乎仍然仅适用于单个连接。有没有可能的方法来做到这一点?这是否不可能,因为新的 Retry() 对象似乎是在总调用次数每次减少时创建的?

最佳答案

我觉得你运气不好。 Retry 文档字符串说(摘录):

Each retry attempt will create a new Retry object with updated values, so they can be safely reused.

因此,正如您所说,每个连接都会创建一个新对象......这是通过设计完成的。

此外,Retry 对象本身就是允许线程的:它在连接尝试之间休眠。因此,通过这种设计,一个 Retry 对象必须与一个线程关联。对不起。这是urllib.utils.retry的链接如果有帮助的话。

关于session - 是否可以设置同一 session 中所有池连接之间共享的最大重试次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47841513/

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