Python中使用asyncio默认的并发级别是多少?

11

我正在使用Python Asyncio来进行大量的HTTP请求。

我想知道Asyncio的默认并发级别是多少,或者在任何给定时间会有多少个HTTP请求并行发生?

下面是我用来执行HTTP请求的代码:

async def call_url(self, session, url):
    response = await session.request(method='GET', url=url)
    return response


async def main(self, url_list):
    async with aiohttp.ClientSession() as session:
        res = await asyncio.gather(*[self.call_url(session, url) for url in url_list])
        return res

1
没有默认值,可用资源是限制因素。开发人员需要实现一种机制,例如线程池。请查看asyncio-pool库:https://pypi.org/project/asyncio-pool/ - Dan Nagle
这个回答解决了你的问题吗?如何使用Python asyncio限制并发? - Sers
1
@Sers 您链接的问题是不同的。这个问题明确询问没有进行自我限制的代码的默认限制,这与其他问题的答案完全不相关。 - user4815162342
1
@aiohttp 默认情况下限制了100个并行连接。 - user4815162342
1个回答

4

在asyncio中没有内置限制,但在aiohttp中有一个限制。 TCPConnector 默认限制连接数量为100。您可以通过创建带有不同限制的TCPConnector并将其传递给会话来覆盖它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接