TaskContainer ============= .. currentmodule:: deepfos.lib.subtask .. autoclass:: TaskContainer :exclude-members: 创建子任务容器 将提供的执行参数包装为当前脚本的子任务,在循环的不同时刻更新状态 Args: args: 执行参数 task_name_tmpl: 任务名模板,支持替换的字段为counter(自增任务编号) 和arg(任务使用的参数),默认以 Task-{counter:03} 格式产生 swallow_exc: 在任务出现异常时是否忽略(不中断程序执行) Note: - 在循环开始前,基于此迭代方法创建并初始化所有子任务,状态为“等待” - 在每次循环开始时,更新当前子任务状态为“运行中” - 结束时,视结果及是否忽略异常(swallow_exc)更新状态为“成功”或“失败” .. admonition:: 示例 例如原先有如下代码结构: .. code-block:: python for arg in range(10): do_something(arg) 如果希望每次循环能作为子任务在作业管理中查看, 可以对代码作如下修改: .. code-block:: python :emphasize-lines: 1,2 for task in TaskContainer(range(10)): with task.get_arg() as arg: do_something(arg) See Also: - :class:`Task` - :func:`create_tasks` .. autosummary::