async def script(urls_list: list[str]) -> dict[str, dict[str, dict[int, any]]]:
result = {}
iter = 0
async def worker():
nonlocal iter
while true:
try:
url = urls_list[iter]
iter += 1
result[url] = await proccess_url(url)
except IndexError:
return
except:
... # обработка внутренних ошибок url
asyncio.gather(*([worker()] * WORKERS_COUNT))
rerutn result
# результат запуска
# worker_id=0, iter=0, url=url-0
# worker_id=2, iter=2, url=url-2
# worker_id=2, iter=4, url=url-4
# worker_id=2, iter=5, url=url-5
# worker_id=0, iter=3, url=url-3
# worker_id=1, iter=1, url=url-1
# worker_id=2, iter=6, url=url-6
# worker_id=0, iter=7, url=url-7
# worker_id=1, iter=8, url=url-8
# worker_id=2, iter=9, url=url-9