接口¶
task_pool_abc module¶
Asynchronous Task Pool Base Class.
-
class
aio_parallel_tools.aio_task_pool.core.task_pool_abc.
AioTaskPoolABC
[源代码]¶ 基类:
abc.ABC
异步任务池的抽象基类
任务池使用生产者消费者模式,通常用于限制并行度,任务池会管理许多消费者来执行任务.可以通过`scale`接口来伸缩消费者数量.可以使用`submit`接口来提交任务.也可以使用`pause`接口来暂停任务提交.
-
abstract async
close
(close_worker_timeout: Union[int, float, None] = None, close_pool_timeout: int = 3, safe=True) → None[源代码]¶ 关闭所有执行器,并停止接收任务.
- 参数
close_worker_timeout (Union[int, float, None], optional) -- 关闭所有worker的过期时间,也会等待任务全部执行完,默认为`None`
close_pool_timeout (int, optional) -- 等待队列同步的过期时间,默认3s
safe (bool, optional) -- 当关闭抛出异常时抛出警告替代,默认为`True`
- 引发
te -- 关闭执行器超时
e -- 关闭执行器时抛出未知错误.
te -- 等待队列同步超时.
e -- 等待队列同步时抛出未知异常.
-
abstract property
closed
¶ 检查任务池是否已经被关闭了.
-
abstract property
max_tasks_number
¶ 最大可容纳的等待执行的任务数目.
- 返回
最大可容纳的等待执行的任务数目.
- 返回类型
int
-
abstract property
paused
¶ 检查用户是否可以提交任务
如果任务池可以接收新任务,返回`False`
- 返回
是否可以提交任务
- 返回类型
bool
-
abstract async
scale
(num: int) → int[源代码]¶ 伸缩一定数量的任务池并行度
- 参数
num (int) -- 如果为正数则增加并行度,反之降低并行度.
- 返回
要伸缩的数量
- 返回类型
int
-
abstract
scale_nowait
(num: int, soft=True) → int[源代码]¶ 同步的伸缩任务池的并行度
- 参数
num (int) -- 如果为正数则增加并行度,反之降低并行度.
soft (bool, optional) -- 在缩小并行度时是否软关闭执行器,如果是`False`则会强制关闭执行器,则默认为`True`
- 返回
要伸缩的数量
- 返回类型
int
-
abstract property
size
¶ 任务池的并行度
- 返回
任务池的并行度
- 返回类型
int
-
abstract async
submit
(task_func: Callable[[Any], Any], *, args: List[Any] = [], kwargs: Dict[str, Any] = {}, blocking: bool = True) → Union[_asyncio.Future, Any][源代码]¶ 提交任务到任务池
- 参数
task_func (Callable[[Any], Any]) -- 将被执行器执行的任务函数
args (List[Any], optional) -- 任务函数的位置参数.默认为[]
kwargs (Dict[str, Any], optional) -- 任务函数的关键字参数.默认为{}
blocking (bool, optional) -- 设置是否要等待任务完成获取结果,否的话返回一个期物对象.默认为`True`
- 引发
NotAvailable -- 任务池被暂停了
- 返回
如果`blocking`被设置为`True`,那么将返回任务的结果,否则返回一个可以`await`任务结果的期物对象.
- 返回类型
Union[asyncio.Future, Any]
-
abstract
submit_nowait
(task_func: Callable[[Any], Any], *, args: List[Any] = [], kwargs: Dict[str, Any] = {}) → _asyncio.Future[源代码]¶ 同步的提交任务到任务池
- 参数
task_func (Callable[[Any], Any]) -- 将被执行器执行的任务函数
args (List[Any], optional) -- 任务函数的位置参数.默认为[]
kwargs (Dict[str, Any], optional) -- 任务函数的关键字参数.默认为{}
- 引发
NotAvailable -- 任务池被暂停了或者
e -- 抛出了别的异常
NotAvailable -- 任务池队列满了,无法再接收更多任务.
- 返回
一个可以被`await`获得任务结果的期物对象.
- 返回类型
asyncio.Future
-
abstract property
waiting_tasks_number
¶ Now number of the waiting tasks.
- 返回
还在等待执行的任务数目.
- 返回类型
int
-
abstract async