gpt4 book ai didi

python - 在 Python 中对 grequests 应用重试

转载 作者:行者123 更新时间:2023-12-05 08:42:32 32 4
gpt4 key购买 nike

我有一个 URL 列表,我想使用 Python 的 grequests 模块对其执行 HTTP Get 请求。

某些 URL 未返回 OK 状态,在这种情况下,我想重试该 URL。

我可以使用队列来执行此操作,该队列存储所有尚未尝试过的此类 URL,或者在之前尝试中未返回 200 的 URL,并继续分批发送请求。不过,我正在为此寻找更清洁/更“Pythonic”的实现。

我之前使用过 retrying 模块进行重试,它非常简洁。我想知道是否有一些类似的、简洁的实现来重试 grequests 发送的请求。

最佳答案

您可以将自己的请求 session 传递给 grequests 并在该 session 上设置重试。

    s = requests.Session()
retries = Retry(total=5, backoff_factor=0.2, status_forcelist=[500, 502, 503, 504], raise_on_redirect=True,
raise_on_status=True)
s.mount('http://', HTTPAdapter(max_retries=retries))
s.mount('https://', HTTPAdapter(max_retries=retries))
reqs = (grequests.get(url, session=s) for url in urls)
for resp in grequests.imap(reqs, stream=False):
...

如果你想流式传输,你可以设置 stream=True。

关于python - 在 Python 中对 grequests 应用重试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40417503/

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