我有代码,使用async_timeout向网站(使用aiohttp)发出http请求。如果我一起运行所有请求,那么一些请求会引发TimeoutError(即使超时= 20秒)。但是,如果我运行一个请求 - 它可以工作。
def coro(url):
with async_timeout.timeout(TIMEOUT, loop=loop):
async with session.get(url) as response:
text, status = (await response.text()), response.status
...
这是async_timeout问题/ bug还是我的?
我尝试使用TCPConnector(aiohttp.TCPConnector(limit=None, verify_ssl=False, loop=loop)
),但它不起作用
答案 0 :(得分:2)
如果请求数量非常大,请求的时间超过20秒(并且单独执行时请求速度要快得多),这并不奇怪。
确保在执行.get()
/ .text()
之前和之后插入时间戳打印输出。
Timeout的代码非常简单且经过高度测试,不会怀疑其中存在错误。