我想分批处理协程,例如:
import asyncio
async def test(i):
print(f"Start Task {i}")
await asyncio.sleep(0.1)
print(f"Finished Task {i}")
async def main():
for i in range(10):
await asyncio.gather(*[test(10*i+j) for j in range(10)])
asyncio.run(main())
有没有办法使用 Python 内置函数或库来做到这一点,这样我就不必单独创建批次?
很遗憾
async with asyncio.Semaphore(10):
await asyncio.gather(*[test(i) for i in range(100)])
没有按预期处理协程:协程是一次性创建的。只有执行是有限的。我不想一次创建所有任务。任务应分批创建。