规则
字段 | 允许值 | 允许的特殊字符 |
---|---|---|
秒(Seconds) | 0~59的整数 | , - * / 4个字符 |
分(Minutes) | 0~59的整数 | , - * / 4个字符 |
小时(Hours) | 0~23的整数 | , - * / 4个字符 |
日期(DayofMonth) | 1~31的整数(注意月的天数) | , - * / ? 5个字符 |
月份(Month) | 1~12的整数或者 JAN-DEC | , - * / 4个字符 |
星期(DayofWeek) | 0~7的整数或者 SUN-SAT (0=7=Sun) | , - * / ? 5个字符 |
示例
0 0 * * * * 每天0点0分执行
*/10 * * * * * 每10秒执行一次
0 0 8-10 * * * 每天的8点、9点、10点执行
0 0 6,19 * * * 每天6点、17点执行
0 0/30 8-10 * * * 每天的8:00, 8:30, 9:00, 9:30, 10:00 and 10:30执行
0 0 9-17 * * MON-FRI 每周工作日的9到17点整点执行
0 0 0 25 12 ? 每年的12月25号0点执行
0 10,44 14 ? 3 WEB 在三月中的每个星期三的下午 2:10 和 下午 2:44 被触发。
? 号只能用在日和周域上,但是不能在这两个域上同时使用。你可以认为 ? 字符是 "我并不关心在该域上是什么值。" 这不同于星号,星号是指示着该域上的每一个值。? 是说不为该域指定值。
不能同时这两个域上指定值的理由是难以解释甚至是难以理解的。基本上,假定同时指定值的话,意义就会变得含混不清了:考虑一下,如果一个表达式在日域上有值11,同时在周域上指定了 WED。那么是要 trigger 仅在每个月的11号,且正好又是星期三那天被激发?还是在每个星期三的11号被激发呢?要去除这种不明确性的办法就是不能同时在这两个域上指定值。
只要记住,假如你为这两域的其中一个指定了值,那就必须在另一个字值上放一个 ?。