Загрузка данных


import asyncio
import random

WORKERS_COUNT = 3


async def script(urls_list):
    iter = 0

    async def worker(worker_id):
        nonlocal iter

        while iter < len(urls_list):
            current_iter = iter
            iter += 1
            await asyncio.sleep(random.uniform(0, 1))
            
            print(
                f"worker_id={worker_id}, "
                f"iter={current_iter}, "
                f"url={urls_list[current_iter]}"
            )

            await asyncio.sleep(0.1)

    await asyncio.gather(
        *(worker(worker_id) for worker_id in range(WORKERS_COUNT))
    )


asyncio.run(script([f"url-{i}" for i in range(10)]))