框架任务¶
任务¶
任务¶
- class ding.framework.task.Task[源代码]¶
任务将管理整个管道的执行顺序,注册新的中间件,并生成新的上下文对象。
- backward(backward_stack: Dict[str, Generator] | None = None) None[source]¶
- Overview:
按照注册的相反顺序执行中间件的剩余部分。
- Arguments:
backward_stack (
Optional[Dict[str, Generator]]): 用自定义的堆栈替换全局的backward_stack。
- emit(event: str, *args, only_remote: bool = False, only_local: bool = False, **kwargs) None[source]¶
- Overview:
发出一个事件,调用监听器。
- Arguments:
事件 (
str): 事件名称。only_remote (
bool): 仅将事件广播到连接的节点,默认值为 False。only_local (
bool): 仅发出本地事件,默认为 False。args (
any): 监听器的其余参数。
- forward(fn: Callable, ctx: Context | None = None) Generator | None[source]¶
- Overview:
此函数将执行中间件,直到第一个 yield 语句或中间件结束。
- Arguments:
fn (
Callable): 包含中间件中ctx参数的函数。ctx (
Optional[Context]): 用自定义的ctx替换全局ctx。
- Returns:
g (
Optional[Generator]): 如果fn的返回值是一个生成器,则该参数为生成器。
- match_labels(patterns: Iterable[str] | str) bool[source]¶
- Overview:
用于匹配标签的模式列表。
- Arguments:
模式 (
Union[Iterable[str], str]): 类似Glob的模式,例如 node.1, node.*。
- on(event: str, fn: Callable) None[source]¶
- Overview:
订阅一个事件,每次事件触发时执行此函数。
- Arguments:
事件 (
str): 事件名称。fn (
Callable): 函数。
- once(event: str, fn: Callable) None[source]¶
- Overview:
订阅一个事件,当事件被触发时只执行一次此函数。
- Arguments:
事件 (
str): 事件名称。fn (
Callable): 函数。
- parallel(*fns: List[Callable]) Callable[source]¶
- Overview:
包装函数并保持它们并行运行,不应在异步模式下使用此函数。
- Arguments:
fn (
Callable): 并行化的中间件,将它们包装成一个中间件函数。
- run(max_step: int = 1000000000000) None[source]¶
- Overview:
执行迭代,当达到最大步数或task.finish为真时,循环将中断。
- Arguments:
max_step (
int): 最大迭代步数。
- serial(*fns: List[Callable]) Callable[source]¶
- Overview:
包装函数并保持它们按顺序运行,通常是为了避免在异步模式下依赖关系的混乱。
- Arguments:
fn (
Callable): 将一系列中间件链接起来,将它们包装成一个中间件函数。
- use(fn: Callable, lock: bool | allocate_lock = False) Task[source]¶
- Overview:
将中间件注册到任务中。中间件将按其注册顺序执行。
- Arguments:
fn (
Callable): 中间件是一个只有一个参数的函数:ctx。lock (
Union[bool, Lock]): 在任何时候,只能有一个中间件在锁下执行。
- Returns:
任务 (
Task): 任务。
- use_wrapper(fn: Callable) Task[source]¶
- Overview:
注册包装器到任务。包装器的工作方式类似于装饰器,但任务将在每个中间件的顶部应用此装饰器。
- Arguments:
fn (
Callable): 包装器是一个装饰器,所以第一个参数是一个可调用的函数。
- Returns:
任务 (
Task): 任务。
- wait_for(event: str, timeout: float = inf, ignore_timeout_exception: bool = True) Any[source]¶
- Overview:
等待一个事件并阻塞线程。
- Arguments:
事件 (
str): 事件名称。超时时间 (
float): 以秒为单位的超时时间。ignore_timeout_exception (
bool): 如果为False,遇到超时将会发生异常。
- wrap(fn: Callable, lock: bool | allocate_lock = False) Callable[source]¶
- Overview:
包装中间件,使其可以直接在其他中间件中调用。
- Arguments:
fn (
Callable): 中间件。lock (
Union[bool, Lock]): 在任何时候,只能有一个中间件在锁下执行。
- Returns:
- fn_back (
Callable): It will return a backward function, which will call the rest part of yield 之后的中间件。如果未调用此 backward 函数,中间件的其余部分将在全局 backward 步骤中被调用。
- fn_back (