Cron 表达式解析
五个字段:分、时、日、月、星期。
逐字段看
| 字段 | 写法 | 含义 |
|---|
接下来几次
| # | 运行时间 |
|---|
时间按你设备的时区显示。真正跑这个任务的服务器可能在另一个时区。
这个工具能做什么
cron 语法很紧凑,也很容易读错,而读错的代价是一个任务在错误的时间跑上好几个月都没人发现。这个页面把那行翻回成一句话,更有用的是,直接列出它真正会触发的日期。
使用方法
- 1 粘贴你的 cron 行,或者从预设里挑一个开始。
- 2 读那句话,再逐个字段核对。
- 3 再对照接下来几次的运行时间确认——错误就是在那里现形的。
五个字段
顺序永远是这样,之间永远用空格分隔。每个字段可以写一个数字、像 1,15 这样的列表、像 9-17 这样的区间、像 */5 这样的步长,或者一个表示「所有值」的星号。
| # | 字段 | 取值范围 | 备注 |
|---|---|---|---|
| 1 | 分 | 0-59 | — |
| 2 | 时 | 0-23 | — |
| 3 | 日 | 1-31 | 见下方的「日」规则 |
| 4 | 月 | 1-12 | 也接受 JAN-DEC |
| 5 | 星期 | 0-7 | 0 和 7 都是星期日;也接受 SUN-SAT |
「日」字段的陷阱
当「日」和「星期」两个字段都不是星号时,cron 会在其中任意一个匹配时运行任务,而不是两个都要匹配。所以「0 0 1 * MON」既在每月 1 号触发,也在每个星期一触发。第一次遇到几乎人人都会意外,因此解析器在这种情况下会特别标出来。
步长不是「从现在起每 N」
分钟字段里的 */20 表示每小时的第 0、20、40 分钟,而不是「上次跑完之后二十分钟」。如果一次运行花了 25 分钟,下一次照样在第 40 分钟开始。步长是从区间起点数的,5-20/5 就从 5 开始数。
时区,以及那些凭空消失的小时
cron 走的是服务器的钟,不是你的钟,所以定在 02:30 的任务,实际触发的本地时间可能和你想的不一样。更麻烦的是,在实行夏令时的地区,这个小时一年里有一晚根本不存在,另一晚则会来两次。凡是既不能漏跑也不能重跑的任务,都请避开 01:00-03:00。
Cron 表达式 - 常见问题
星期日。而且 7 也是星期日,这就是为什么范围写成 0-7 而不是 0-6。名称也能用:SUN 到 SAT,写工作日时 MON-FRI 最好读。
相关开发工具
MD5生成器
免费 MD5 生成器:在浏览器中把文本或文件转换为 MD5 校验值,适合完整性校验与快速比对。
Base64编码器和解码器
免费 Base64 编码与解码:在浏览器中将文本或文件转为 Base64 并还原,数据不会上传到服务器。
Lorem Ipsum 生成器
免费 Lorem Ipsum 生成器:按段落、句子或字数生成占位文本,可选加入 HTML 标签用于设计稿。
JWT 解码器
免费 JWT 解码器:粘贴令牌即可查看头部、载荷与签名,解析在浏览器中完成,数据不会外传。
URL 编码与解码
免费 URL 编码解码工具:把链接与查询参数转为百分号编码并还原,支持整条 URL 或单个部分。