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目录下; - 配置的工作目录路径缺失。
- 最近一次运行失败(
- 新增的子命令需通过解析器、命令分发机制以及针对性的测试进行验证。