async def run(r):
tasks = []
sem = asyncio.Semaphore(1000)
async with ClientSession() as session:
for url in r:
task = asyncio.ensure_future(bound_fetch(sem, url, session))
tasks.append(task)
responses = await asyncio.gather(*tasks)
with open('0.txt') as f:
urls = f.read().splitlines()
que = []
for url in urls:
que.append(url)
if len(que) == 5000:
loop = asyncio.get_event_loop()
future = asyncio.ensure_future(run(que))
loop.run_until_complete(future)
que = []
loop = asyncio.get_event_loop()
future = asyncio.ensure_future(run(que))
loop.run_until_complete(future)
Я подаю в потоки массив по 5000 элементов, если убрать эту часть и подать весь массив из 1млн, то виснет практически моментально. Если подавать слайсами по 5к начинает виснуть примерно через пару минут.
Где ошибка?