Я хочу выполнить асинхронную c обработку в python3 .8,
Как я могу изменить количество сопрограмм в середине процесса?
Возможно ли изменить семафор, изменив количество лимитов по пути?
async def exec(id1,id2):
print(f'start: {id1} end: {id2}')
loop = asyncio.get_event_loop()
func = functools.partial(run_insert,id1,id2)
await loop.run_in_executor(None, func)
async def parallel_call(s2elist,limit):
sem = asyncio.Semaphore(limit)
async def call(start,end):
async with sem:
return await exec(start,end)
return await asyncio.gather(*[call(s,e) for s,e in s2elist])
if __name__ == '__main__':
s2elist = [[1000,2000],
[2000,3000],
[3000,4000],
[4000,5000],
[5000,6000],
[6000,7000],
[7000,8000],
[8000,9000],
[9000,10000]
]
loop = asyncio.get_event_loop()
loop.run_until_complete(parallel_call(s2elist,10))