同时运行iterable中的每个项目的协同程序
aioconcurrenc的Python项目详细描述
货币
在iterable中同时运行每个项目的协同程序
安装
pip install aioconcurrency
用法示例
import aioconcurrency
items = [1, 2, 3, 4]
async def f(item):
return item * 2
async def main():
await aioconcurrency.map(items, f, concurrency=2) # Returns [2, 4, 6, 8]
async for result in aioconcurrency.each(items, f, concurrency=2):
print(result) # Prints 2 4 6 8 in random order
API
aioconcurrency.map
与iterable中的每个项同时运行给定的协程。 返回值的列表将按顺序排列,就像按顺序运行一样。
items
一个可测量的物体。
coro
为每个项目提供协同程序。
optional: concurrency
coro
的并发运行数。默认为aioconcurrency.Infinite
。
optional: executor
可以是ThreadPoolExecutor的实例。
optional: loop
将使用的异步事件循环。
所有货币。每个
与iterable中的每个项同时运行给定的协程。 返回可用于迭代返回值的生成器。只要有值,生成器就会立即生成值。
items
一个可测量的物体。如果通过了asyncio.Queue
,那么.each
将无限期地从中读取。
coro
为每个项目提供协同程序。
optional: concurrency
coro
的并发运行数。默认为aioconcurrency.Infinite
。
optional: executor
可以是ThreadPoolExecutor的实例。
optional: loop
将使用的异步事件循环。
optional: discard_results
如果是truthy,则放弃返回值coro
。默认为false。
property: wait()
协同旅行。可用于等待所有项目处理完毕。
property: processed_count
到目前为止已处理的项目数。
property: cancel()
取消coro
的所有运行。
测试
pytest .