Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Cron Doctor 规范

问题

当脚本被移动、工作目录消失、服务提供者运行失败或任务交付开始出错时,定时任务的状态可能会在无人察觉的情况下逐渐恶化。虽然 hermes cron list 能够直接显示部分相关信息,但目前尚不存在一种简洁的只读健康检查工具,无法通过终端、定时任务或 CI 风格的烟检机制来执行。

目标

新增 hermes cron doctor 这一只读诊断命令,用于汇总定时任务的健康状况;一旦检测到需要处理的问题,该命令将返回非零退出码。

不包含的功能

  • 不允许修改任务配置或自动修复任务状态。
  • 不允许启动/停止网关服务。
  • 不允许查看敏感信息或输出凭证内容。

接受标准

  • 若所有正在运行的任务均未检测到问题,hermes cron doctor 将返回 0 并输出健康状态提示。
  • 若任何正在运行的任务存在以下情况之一,该命令将返回 1 并按类别列出相关问题:
    • 最近一次运行失败(last_status 不为 ok);
    • 最近一次任务交付失败;
    • 任务仍处于运行状态但未设置 next_run_at 时间;
    • 启用了 no_agent 模式却未指定脚本;
    • 脚本路径不存在或不在 HERMES_HOME/scripts 目录下;
    • 配置的工作目录路径缺失。
  • 新增的子命令需通过解析器、命令分发机制以及针对性的测试进行验证。