Cron表达式解析器
输入Cron表达式以查看其易读描述、字段分解和接下来的10次执行时间。所有处理均在您的浏览器中完成。
人类可读描述
字段详解
| 字段 | 值 | 含义 |
|---|
接下来10次执行时间
关于Cron表达式
Cron表达式定义类Unix系统上的周期性任务调度。标准表达式有5个字段:
| 字段 | 范围 | 特殊字符 |
|---|---|---|
| 分钟 | 0-59 | * , - / |
| 小时 | 0-23 | * , - / |
| 月份中的日 | 1-31 | * , - / ? |
| 月份 | 1-12, JAN-DEC | * , - / |
| 星期几 | 0-7(0和7 = 周日), SUN-SAT | * , - / ? |
下次运行是按你选的时区算的,不是按你所在的时区,因为 crontab 是在服务器所在的地方触发,而那通常是 UTC。凡是能写数字的地方都能写三字母名称,所以 MON-FRI 和 JAN 照写就能用。超出字段范围的值、为零的步长、以及倒着走的区间都会被拒绝,而不是悄悄产出一个永远不会触发的计划。当两个日期字段都被限定时,页面会提示,因为 cron 把这一对当作「或」而不是「且」,很多人会在这里栽跟头。
常见问题
为什么我的任务跑得比预期还勤?
通常是因为两个日期字段都填了。当日期和星期都不是星号时,cron 是在其中任意一个匹配时运行,而不是两个都匹配时。所以 0 0 1 * 1 会在每月一号触发,也会在每个周一触发。你的表达式一旦是这个形状,本页面就会提醒你。
下次运行用的是哪个时区?
你选的那个,默认是 UTC 而不是你所在的时区,因为 crontab 是在服务器所在的地方触发的。如果你的主机跑在某个地区时区,就选它;另外记得夏令时可能让每日任务跳过或重复一个小时。
能写 MON-FRI 代替 1-5 吗?
能。凡是能写数字的地方都能写三字母名称,月份和星期都适用,所以 JAN、DEC、MON、SUN 都能解析。周日写 0 或 7 都行,两者都接受,这也是为什么 6-7 这样的区间能覆盖整个周末。
星号加斜杠是什么意思?
表示步长。分钟字段里的 */15 表示从 0 开始每隔十五分钟,也就是 0、15、30、45。从别的地方起步也行:5/15 表示从第 5 分钟起,每十五分钟一次。步长为 0 是无效的,本页面会告诉你,而不是卡死。
支持多出来的秒字段吗?
能解析,Quartz 和好几个任务调度器用的就是这种形式,所以六字段的表达式也能被正确描述。下次运行的列表按分钟粒度工作,因为原生 cron 就到这个粒度,而秒字段只是在每个匹配到的分钟内部再收窄一层。