Skip to content

任务身份与生命周期 ​

Task ID 标识工作区中的一个任务目录,run_id 标识一轮执行。提交受理、执行终态和成功产物发布是不同阶段;正确判断结果需要保存提交返回的 handle,并核对最终状态。

Task 生命周期

三种名字与一个运行标识 ​

字段含义示例
Task 注册名查找定义与输入 Schemademo
input.task_name用户给实例指定的名称trial-01
task_id类型、注册名和实例名拼接base#demo#trial-01
run_id每次执行独立生成的标识UUID 的十六进制字符串

task_name 允许 1–32 个英文字母、数字或连字符。省略或传空字符串时,框架使用包含小时级时间前缀和随机后缀的名称。Task ID 中的 # 必须保留,shell 中应使用引号。

注意持久状态的 task_name 字段当前保存 Task 注册名。实例名称位于 status.config.task_name,以及 metadata.input_params.task_name。不要用状态顶层的这个字段反推目录后缀。

状态含义 ​

state含义是否终态
queued已受理,等待 worker 交接或运行否
running正在执行同步步骤否
succeeded步骤与输出完成,退出码为 0是
failed异常、非零退出码或异常 worker 退出是
cancelled取消或管理器关闭导致停止是

典型转换为 queued → running → succeeded。queued 和 running 均可能进入 cancelled;步骤异常、输出校验异常或非零退出可进入 failed。

submit 没有实现资源排队调度器:queued 是受理交接状态,不能据此假设已有按 GPU、优先级或配额调度的队列。

步骤进度 ​

状态中的 steps 保存每个已开始步骤的名字、开始结束时间与百分比。Task 可以在步骤内部调用 report_progress(percentage):

  • 数值必须处于 0–100。
  • 同一步骤不能倒退。
  • 步骤正常结束时自动记录 100。
  • 失败步骤有结束时间,但不一定为 100。

步骤生成器可以按中间状态动态产生后续步骤,因此当前步骤数量不一定是完整总数。不能简单把“已执行步骤 / 当前步骤数”当成可靠的整项任务百分比。

成功记录发布顺序 ​

正常成功执行会依次完成:

  1. 所有同步步骤返回。
  2. build_output_params() 返回正确 output_cls 的实例。
  3. 获取输出与退出码;退出码为 0 时写入 metadata。
  4. 发布 succeeded 状态。

因此成功状态发布前,metadata 已经写入。失败或取消任务通常只有 status、进度事件和部分产物,没有成功 metadata。Studio 研究列表按 metadata 查找结果,所以任务列表可见不等于研究页面可见。

固定名称重跑 ​

bash
axonx submit --task demo --task-name trial-01 --x 1 --y 2
# 等上一轮进入终态后,才提交同名实验
axonx submit --task demo --task-name trial-01 --x 2 --y 3

固定名称对应同一 Task ID。已结束的任务可以被新执行替换,旧任务目录及其中产物会被删除并重新创建;活跃任务不能覆盖。

不同参数的实验比较应使用不同名称,例如 trial-01、trial-02,或使用默认生成名称。同名重跑并不在一个目录中保存完整历史;历史恢复需要事先备份。

等待与取消 ​

wait_task 要求 task_id 和 run_id,防止目录已重跑时读到另一轮结果。stream_task 按 Task ID 持续跟踪状态与日志,适合实时观察;需要确认某一轮身份时仍应保留 handle。

bash
axonx status --task-id 'base#demo#trial-01'
axonx cancel --task-id 'base#demo#trial-01'

取消操作作用于当前管理器掌握的活跃 worker。任务很快完成时,取消可能返回 false;这是竞态下的正常情况。关闭服务也会停止其管理的 worker,并将受影响运行记为 cancelled。

文件记录可以恢复查询信息,不能自动恢复一个已中断 Python 进程的内存状态。

相关文档 ​

任务管理 · 工作区 · 日志与恢复 · Task 契约

源码:身份规则、TaskRunner、TaskManager。

Agent-native quant research.