-
Notifications
You must be signed in to change notification settings - Fork 18
quartz cron desc
qifeng dai edited this page Mar 7, 2017
·
3 revisions
具体的语法,可以参考:http://www.quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/tutorial-lesson-06.html, 这里做一个简单的说明。
Quartz 表达式由 6 个部分组成,为:分别为 Seconds
,Minutes
,Hours
,Day-of-Month
,Month
,Day-of-Week
,Year (optional field)
,比如:
0 0 12 ? * WED
单个的子表达式可以包含范围或者是列表,比如周字段,可以是 MON-FRI
, MON,WED,FRI
, 或是 MON-WED,SAT
。
对于 *
表示的是任意的可能值,比如在 Month
这个位置,表示的是每个月,在 Day-of-Week
这个位置表示的是周的每一天。
每个字段的可选值如下:
-
Seconds
:[0, 59] -
Minutes
:[0, 59] -
Hours
:[0, 23] -
Day-of-Month
:[1, 31] -
Month
:[0, 11] 或者是JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
-
Day-of-Week
:[1, 7], 1 = Sunday, 顺序是SUN, MON, TUE, WED, THU, FRI, SAT
还有一个字符 /
是比较特殊的,表示增量的规则,比如 0/15
在分钟字段表示每 15 分钟,从 0 分开始,3/20
表示每 20 分钟,从第 3 分钟开始,和 3, 23, 43
是等价的。需要注意的是 /35
不是表示每 35 分钟,是在小时内的每 35 分钟,等价于 0, 35
。
还有一个需要注意的是 ?
,这个字符只允许出在 Day-of-Month
和 Day-of-Week
的位置,在只需要设置其中一个字段的时候是有效的。如果某个字段设置了 ?
,实则表示是没有设置具体的值。而不是像 *
一样表示的是任意的可能值。
-
0 0/5 * * * ?
表示每 5 分钟激活。 -
10 0/5 * * * ?
表示每 5 分钟,且是在每分钟的第 10 秒激活,比如10:00:10 am, 10:05:10 am
等。 -
0 30 10-13 ? * WED,FRI
表示在每周的 WED,FRI 的 10 点到 13 点的 30 分钟 0 秒激活,比如10:30, 11:30, 12:30, 13:30
。 -
0 0/30 8-9 5,20 * ?
表示每月的 5 号,10 号,在早上 8~9 点,每 30 分钟的 0 点激活,比如8:00, 8:30, 9:00, 9:30
。