#01
什么是 Cron 表达式?
Cron 表达式(Cron Expression)是一种用于定义定时任务执行时间的字符串格式,起源于 Unix/Linux 系统的 crontab 命令。它通过 6 或 7 个字段(秒、分、时、日、月、周、年)精确控制任务的运行周期。
标准七域格式为:秒 分 时 日 月 周 [年],每个字段支持通配符 *、范围 1-5、间隔 0/15、列表 1,3,5 以及特殊字符 ?(不指定)、L(最后一天)、W(最近工作日)等。
如今 Cron 已被 Java Quartz、Spring Schedule、Node.js node-cron 等几乎所有主流调度框架采纳,是后端开发中配置定时任务的标准方式。
#02
常见错误与跨平台差异
Cron 表达式看似简单,但以下问题经常导致线上故障:
- 日与周冲突:大多数实现不允许"日"和"周"同时指定具体值,其中一个必须设为 ?。否则行为未定义或直接报错。
- 周字段标准不同:Linux crontab 中 0=周日 或 7=周日;Spring 中 1=周日;Quartz 中 1=周日 但也支持英文缩写 SUN-SAT。本工具右上角可切换标准。
- 6 位 vs 7 位:传统 Linux crontab 使用 5/6 域(不含秒);Spring 和 Quartz 支持 7 域(含秒和年)。复制表达式时需确认目标系统位数。
- "每月最后一天"的坑:L 在日域表示月末,但在某些框架中与 W 组合使用时语义可能变化。
使用本工具可以实时预览最近 7 次运行时间,快速发现上述问题。
#03
数据安全与隐私说明
本工具的核心设计原则是"纯前端运行"。所有 Cron 表达式的生成、解析、预览计算都在您的浏览器本地完成,不会向任何服务器发送您输入的时间规则或业务数据,也不会在任何地方保存您的配置。
对于含有敏感时间规则的表达式(如涉及生产环境备份窗口、密钥轮换周期等),建议在离线或受控环境中使用,或在粘贴到工具前先手动脱敏关键信息。