Skip to main content
定时任务在 Harness 内按计划执行消息,将任务、执行状态和结果保存在 TOS。适合周期报告、巡检和指定时间执行的工作

启用定时任务

启用后需保持至少一个运行实例,产生运行时容量与 TOS 费用。任务内容和解析后的 MCP 凭据会保存在 TOS,应限制桶的访问权限。部署身份需要为运行时角色创建或绑定限定到任务存储前缀的 TOS 策略的权限
先准备已有 TOS 桶,在包含 harness.yaml 的项目目录运行
harness.yaml
BytePlus 使用 cloud.provider: byteplus、对应运行时区域和 TOS 桶;部署参数也可使用全局 --provider byteplus。桶名不能写成完整域名。当前只支持服务鉴权的 Harness,例如 API Key;共享 OAuth Harness 不支持后台任务 部署后先运行 agentkit harness cronjob status my-harness 确认响应实例已启用调度且存储可用,再创建任务。该状态只代表响应本次请求的实例,不是所有副本的汇总状态

命令总览

harness cronjob create

创建周期或一次性任务
返回结果包含 cronjob_id。相同幂等键与相同输入返回同一任务,输入改变则拒绝。一次性任务将 --cron 替换为未来时间,例如 --at "2026-10-01T09:00:00+08:00"。--config 使用 Harness 调用配置 中的消息、harness 和模型调用上限;未覆盖字段继承部署配置 将创建结果中的实际 cronjob_id 保存为变量,供以下详情、暂停和历史命令使用

harness cronjob list

列出任务定义与状态
将返回的 next_cursor 传入 --cursor 读取下一页

harness cronjob status

查看响应本次请求的运行实例的调度状态

harness cronjob get

查看指定任务

harness cronjob pause

暂停后续调度与排队执行,不终止正在运行的任务

harness cronjob resume

恢复已暂停任务

harness cronjob runs

按从新到旧的顺序查询执行历史
将返回的 next_cursor 传入 --cursor 读取下一页 从 runs 返回的执行历史中选择 run_id,再读取该次执行的结果;任务 ID 和执行 ID 不能互换

harness cronjob result

读取一次执行的最终结果

harness cronjob cancel

请求取消指定执行

调度、恢复与结果

  • 每次执行使用独立会话,最终结果保存在 TOS,重启后仍可查询
  • 同一任务的上次执行尚未结束时,新的触发记为 skipped
  • latest 在恢复后补跑最近一次错过的触发;skip 只在最近一次触发的延迟不超过 --grace 时执行,不逐次补跑历史触发
  • 失败和超时不会自动重试,下一次计划仍可执行
  • 工作实例停止或失去租约时,执行记为 interrupted,任务暂停;检查外部操作结果后再恢复周期任务或新建一次性任务
  • 暂停不会终止正在执行的任务,cancel 请求在执行租约续期时处理,默认通常在约 20 秒内被检查
  • status 只反映响应请求的实例;runs 按从新到旧返回。结果保存到历史前的短暂阶段可先通过 get 或 result 查看
外部操作不保证只发生一次,例如工具完成外部写入后实例立即中断。恢复前应核对已发生的操作,避免重复执行。调度会扫描保留的任务,任务量增加时应结合 TOS 请求量调整轮询间隔 暂停任务用于停止后续调度;取消针对某一个 run_id,不改变周期计划。取消请求返回后应重新查询执行状态,不能假定已完成的外部操作被撤销。当前 CLI 没有删除任务定义的子命令;停止后续执行使用 pause
最后修改于 2026年9月19日