Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python aiohttp超时是针对单个TCP连接还是针对http请求?_Python_Timeout_Aiohttp - Fatal编程技术网

python aiohttp超时是针对单个TCP连接还是针对http请求?

python aiohttp超时是针对单个TCP连接还是针对http请求?,python,timeout,aiohttp,Python,Timeout,Aiohttp,在python aiohttp中,我们可以在ClientSession或例如session.get中设置超时 假设我们这样做 async with aiohttp.ClientSession(timeout=<customized timeout>) as session: async with session.get(<url1>): xxx async with session.get(<url2>):

在python aiohttp中,我们可以在ClientSession或例如session.get中设置超时

假设我们这样做

async with aiohttp.ClientSession(timeout=<customized timeout>) as session: 
    async with session.get(<url1>): 
        xxx
    async with session.get(<url2>): 
        xxx

自定义超时用于整个async with aiohttp.ClientSession或每个async with session。get?

超时用于每个单独的请求;您可以通过以下方式进行测试:

导入异步 进口aiohttp 随机输入 异步def主: 超时=aiohttp.ClientTimeouttotal=3 与aiohttp异步。ClientSessiontimeout=作为会话超时: 基本url=http://httpbin.org/delay/%d 对于范围10中的i: url=base\u url%random.randint1,5 尝试: 以session.geturl作为响应的异步: data=wait response.json printfstep{i},url{url},状态{response.status},键:{lendata} asyncio.exceptions.TimeoutError除外: printfstep{i},url{url},状态超时 asyncio.runmain 在我的计算机上的结果:

step 0, url http://httpbin.org/delay/5, status timeout
step 1, url http://httpbin.org/delay/5, status timeout
step 2, url http://httpbin.org/delay/2, status 200, keys: 7
step 3, url http://httpbin.org/delay/4, status timeout
step 4, url http://httpbin.org/delay/4, status timeout
step 5, url http://httpbin.org/delay/3, status 200, keys: 7
step 6, url http://httpbin.org/delay/2, status 200, keys: 7
step 7, url http://httpbin.org/delay/3, status 200, keys: 7
step 8, url http://httpbin.org/delay/1, status 200, keys: 7
step 9, url http://httpbin.org/delay/2, status 200, keys: 7

超时是针对每个请求的;您可以通过以下方式进行测试:

导入异步 进口aiohttp 随机输入 异步def主: 超时=aiohttp.ClientTimeouttotal=3 与aiohttp异步。ClientSessiontimeout=作为会话超时: 基本url=http://httpbin.org/delay/%d 对于范围10中的i: url=base\u url%random.randint1,5 尝试: 以session.geturl作为响应的异步: data=wait response.json printfstep{i},url{url},状态{response.status},键:{lendata} asyncio.exceptions.TimeoutError除外: printfstep{i},url{url},状态超时 asyncio.runmain 在我的计算机上的结果:

step 0, url http://httpbin.org/delay/5, status timeout
step 1, url http://httpbin.org/delay/5, status timeout
step 2, url http://httpbin.org/delay/2, status 200, keys: 7
step 3, url http://httpbin.org/delay/4, status timeout
step 4, url http://httpbin.org/delay/4, status timeout
step 5, url http://httpbin.org/delay/3, status 200, keys: 7
step 6, url http://httpbin.org/delay/2, status 200, keys: 7
step 7, url http://httpbin.org/delay/3, status 200, keys: 7
step 8, url http://httpbin.org/delay/1, status 200, keys: 7
step 9, url http://httpbin.org/delay/2, status 200, keys: 7

高兴的是,答案是有帮助的;如果你的问题得到了回答,请将其标记为高兴,因为答案是有帮助的;如果您的问题得到了回答,请将其标记为