用途:在编写、审阅或部署 cron 表达式前进行诊断校验,适用于 crontab、Kubernetes CronJob、GitHub Actions schedule、Airflow DAG、Celery beat、systemd timer 等定时任务场景;也用于排查「任务未触发」「触发时间不符」等问题。
主要能力:解析标准 5 字段(分、时、日、月、周)表达式,校验取值范围(周 0 和 7 均为周日,支持月份与星期英文名);用自然语言描述表达式;运行五类「死亡陷阱」检查;计算未来 5 次触发时间和预估年触发次数。五类陷阱包括:不可能日期(如 0 0 30 2 * 永不触发)、日与周同时受限时的 OR 语义(0 0 1,15 * 1 每月约 6 次而非 2 次)、午夜集中触发(0 0 * * * 造成资源高峰)、步长不能整除 60 导致间隔漂移(*/7 出现 7,7,7,7,4 的间隔)、闰年 2 月 29 日仅在闰年触发。
使用方式:附带零依赖 Node.js 引擎 scripts/cron-engine.js,无需安装依赖,可编程调用或通过 CLI 使用。编程接口提供 describe、validate、nextRuns、formatNextRuns;CLI 示例:node scripts/cli.js describe "*/5 * * * *"、node scripts/cli.js validate "0 0 30 2 *"、node scripts/cli.js next "0 9 * * 1-5" 5。
限制:仅针对 Vixie cron、systemd timers、Kubernetes CronJob、GitHub Actions schedule 等使用的标准 5 字段表达式,不校验 Quartz 6/7 字段(含秒/年)及 @reboot、L、# 等非标准扩展;年触发次数按非闰年估算;不替代具体环境的测试与人工审查。脚本只读,不写文件、不发网络请求,无前置条件即可安全运行。其他细节暂未提供。