aiohttp超时无法正常工作

时间:2016-10-16 23:04:24

标签: python-asyncio aiohttp

我有代码,使用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)),但它不起作用

1 个答案:

答案 0 :(得分:2)

如果请求数量非常大,请求的时间超过20秒(并且单独执行时请求速度要快得多),这并不奇怪。

确保在执行.get() / .text()之前和之后插入时间戳打印输出。

Timeout的代码非常简单且经过高度测试,不会怀疑其中存在错误。