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)]))