1 Spring 中 Quartz 的 Cron 配置说明
一个 Cron-表达式是一个由六至七个字段组成由空格分隔的字符串,其中 6 个字段是必须的
而一个是可选的,如下:
字段名 允许的值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日 1-31 , - * ? / L W C
月 1-12 or JAN-DEC , - * /
周几 1-7 or SUN-SAT , - * ? / L C #
年 (可选字段) empty, 1970-2099 , - * /
1) '*' 字符可以用于所有字段,在“分”字段中设为"*"表示"每一分钟"的含义。
2) '?' 字符可以用在“日”和“周几”字段. 它用来指定 '不明确的值'. 这在你需要指定这两个字
段中的某一个值而不是另外一个的时候会被用到。在后面的例子中可以看到其含义。
3) '-' 字符被用来指定一个值的范围,比如在“小时”字段中设为"10-12"表示"10 点到 12 点".
4) ',' 字符指定数个值。比如在“周几”字段中设为"MON,WED,FRI"表示"the days Monday,
Wednesday, and Friday".
5) '/' 字符用来指定一个值的的增加幅度. 比如在“秒”字段中设置为"0/15"表示"第 0, 15, 30,
和 45 秒"。而 "5/15"则表示"第 5, 20, 35, 和 50". 在'/'前加"*"字符相当于指定从 0 秒开始.
每个字段都有一系列可以开始或结束的数值。对于“秒”和“分”字段来说,其数值范围
为 0 到 59,对于“小时”字段来说其为 0 到 23, 对于“日”字段来说为 0 到 31, 而对于“月”字
段来说为 1 到 12。"/"字段仅仅只是帮助你在允许的数值范围内从开始"第 n"的值。 因
此 对于“月”字段来说"7/6"只是表示 7 月被开启而不是“每六个月”, 请注意其中微妙的差
别。
6) 'L'字符可用在“日”和“周几”这两个字段。它是"last"的缩写, 但是在这两个字段中有不同
的含义。例如,“日”字段中的"L"表示"一个月中的最后一天" —— 对于一月就是 31 号对
于二月来说就是 28 号(非闰年)。而在“周几”字段中, 它简单的表示"7" or "SAT",但
是如果在“周几”字段中使用时跟在某个数字之后, 它表示"该月最后一个星期×" —— 比
如"6L"表示"该月最后一个周五"。当使用'L'选项时,指定确定的列表或者范围非常重要,
否则你会被结果搞糊涂的。
评论0