Aiohttp параллельные ответы зависают - PullRequest
0 голосов
/ 05 ноября 2019

Все запросы работают нормально, но после 90% задач ответы зависают и время ожидания.

В следующем коде, если вы измените n_requests на 1000 или 10, проблема все еще существует икажется, что он всегда равен 10%, который не получит ответа.

Кажется, что он работает только с 2 запросами (n_requests = 2):

import asyncio
import aiohttp

n_requests = 100

async def make_request(session, req_n):
    url = f"https://www.xup.to/exec/ximg.php?fid={req_n}"
    print(req_n)
    async with session.get(url) as resp:
        print(req_n, "finish")

async def main():
    async with aiohttp.ClientSession() as session:
        counternr = 0
        while counternr < 9999:
            await asyncio.gather(
                *[make_request(session, i) for i in range(counternr, counternr + n_requests)]
        )
            counternr= n_requests + counternr

loop = asyncio.get_event_loop()
loop.run_until_complete(main())
...