gpt4 book ai didi

Python 异步协程批量处理

转载 作者:行者123 更新时间:2023-12-04 11:56:36 36 4
gpt4 key购买 nike

我想分批处理协程,例如:

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)])
没有按预期处理协程:
协程是一次性创建的。只有执行是有限的。我不想一次创建所有任务。应批量创建任务。

最佳答案

这就是我要找的:

import asyncio

from aiodecorators import Semaphore


@Semaphore(10)
async def test(i):
print(f"Start Task {i}")
await asyncio.sleep(0.1)
print(f"Finished Task {i}")


async def main():
await asyncio.gather(*[test(i) for i in range(100)])


asyncio.run(main())

关于Python 异步协程批量处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68137200/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com