async/aiohttp помочь с решением ограничения Windows
Я для парсинга использую aiohttp и async. На windows имеется ограничение в 64 одновременных сокета. Чтобы обойти это ограничение, посоветовали использовать ProactorEventLoop.
Я попробовал, но мне постоянно кидает, что я использую разные event loop.
Помогите, как исправить мой код, чтобы обойти это ограничение
async def start_main(root_items):
loop = asyncio.get_event_loop()
with ThreadPoolExecutor(os.cpu_count()) as pool:
initial_future = loop.create_future()
initial_future.set_result(root_items)
await crawl(initial_future, pool)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
try:
loop.run_until_complete(start_main(urls))
except KeyboardInterrupt:
for task in asyncio.Task.all_tasks():
task.cancel()
with suppress(asyncio.CancelledError):
loop.run_until_complete(task)
Использую Python 3.6.8 Источник
Заменил loop в Main и стало кидать ошибки
Exception in callback _ProactorBaseWritePipeTransport._loop_writing(<_OverlappedF...hed result=31>)
handle: <Handle _ProactorBaseWritePipeTransport._loop_writing(<_OverlappedF...hed result=31>)>
Traceback (most recent call last):
File "C:\Program Files\Python36\lib\asyncio\events.py", line 145, in _run
self._callback(*self._args)
File "C:\Program Files\Python36\lib\asyncio\proactor_events.py", line 271, in _loop_writing
assert f is self._write_fut
AssertionError