python - aiohttp:设置每秒最大请求数

标签 python python-asyncio aiohttp

如何在客户端使用 aiohttp 设置每秒最大请求数(限制它们)?

最佳答案

虽然每秒的请求数量并不完全是一个限制,但请注意,从 v2.0 开始,当使用 ClientSession , aiohttp 自动将同时连接数限制为 100。

您可以通过创建自己的TCPConnector 来修改限制。并将其传递给 ClientSession。例如,要创建一个限制为 50 个并发请求的客户端:

import aiohttp

connector = aiohttp.TCPConnector(limit=50)
client = aiohttp.ClientSession(connector=connector)

如果它更适合您的用例,还有一个 limit_per_host 参数(默认为关闭),您可以传递该参数以限制同时连接到同一“端点”的数量.根据文档:

limit_per_host (int) – limit for simultaneous connections to the same endpoint. Endpoints are the same if they are have equal (host, port, is_ssl) triple.

示例用法:

import aiohttp

connector = aiohttp.TCPConnector(limit_per_host=50)
client = aiohttp.ClientSession(connector=connector)

关于python - aiohttp:设置每秒最大请求数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35196974/

相关文章:

python-3.x - Python 调试器没有进入协程?

从类运行时python nats连接错误

Python 异步 - 所有 aiohttp 请求立即发送

python - 使用 aiohttp 在 Python 中从内存上传 multipart/form-data

python - Django 教程第 1 部分 'Poll' 对象没有改变

python - 从 python pandas 中的 DataFrame 中删除特定行

Python 和 ElementTree : return "inner XML" excluding parent element

python - 将任务添加到不同线程中的空循环时的奇怪行为

Windows : Including custom CA file not working 上的 Python 3.6

python - 循环更新pyplot 3d散点图,网格线重叠点