我正在试验limit和limit_per_host参数aiohttp.connector.TCPConnector。在下面的脚本中,我传递connector = aiohttp.connector.TCPConnector(limit=25, limit_per_host=5)到aiohttp.ClientSession,然后向 docs.aiohttp.org 打开 2 个请求,向 github.com 打开 3 个请求。的结果session.request是 的一个实例aiohttp.ClientResponse,在这个例子中,我故意不调用.close()它,无论是通过.close()还是__aexit__。我认为这会使连接池保持打开状态,并将与该(主机、ssl、端口)的可用连接减少三倍 -1。下表代表了._available_connections()每个请求之后。 为什么即使在完成对 docs.aiohttp.org 的第二个请求后,该数字仍为 4? 这两个连接可能仍处于打开状态,尚未访问._content或已关闭。可用连接数不应该减少 1 吗?After Request Num. To _available_connections1 docs.aiohttp.org 42 docs.aiohttp.org 4 <--- Why?3 github.com 44 github.com 35 github.com 2此外,为什么._acquired_per_host只包含 1 个键? 我想我可能正在了解TCPConnector; 什么解释了上述行为?
添加回答
举报
0/150
提交
取消