Не уверен, что я выбрал правильный подход. Мне нужно динамически изменять количество запросов, которые я отправляю, для этого я думал, что могу динамически изменять количество семафоров, которые я запускаю. Допустим, я хочу 10 параллельных вызовов в течение первой минуты, затем увеличу до 20 в течение 2 минут, затем уменьшу до 15 и так далее, как нагрузочный тест. Можно ли контролировать dynamic_value
во время выполнения?
async def send_cus(cus_id):
async with ClientSession(connector=TCPConnector(limit=0)) as session:
num_parallel = asyncio.Semaphore(dynamic_value)
async def send_cust_2(cust_id):
async with num_parallel:
# do something ...
tasks = list(send_cust_2(cust_id) for cus_id in my_ordered_lst)
await asyncio.gather(*tasks)