跳转到主要内容

一个模拟 concurrent.futures 的 asyncio API,支持任务图执行器

项目描述

parallels

Parallels 是一个由 literary 驱动的库。它提供了一个模拟 concurrent.futures 的异步 API,支持任务图执行器。

在文档生成器完成之前,可以使用 nbviewer 查看这些笔记本。

什么?

在 Python 中,有几个标准 API 用于与 执行器 交互。AsyncIO 有 run_in_executor API,concurrent.futuresExecutor API,以及其他像 Dask 和 Ray 这样的库也有类似的方法。concurrent.futures 通常在其他库中可用,但其功能集较小,这阻止了底层库实现有用的优化,如 Dask 的延迟计算或任务图构建。

Parallels 实现了一个标准的 Executor 接口,该接口定义了一个同步的 submit 方法和一个异步的 retrieve 方法。这些方法操作无值的 asyncio.Future 处理器,在任务成功时返回 True,否则抛出 Exception。Dask 和 Ray 的实现接受这些处理器作为未来 submit() 调用的参数,这可以用于构建任务图并避免将数据复制到本地机器。

由以下支持