cron表达式总结

 cron表达式用于配置cronTrigger的实例,在定时任务中会用到cron表达式。cron表达式实际上是由七个子表达式组成。这些表达式之间用空格分隔。

可通过工具校验:http://cron.qqe2.com/
一、cron表达式结构
1.Seconds (秒)
2.Minutes(分)
3.Hours(小时)
4.Day-of-Month (天)
5.Month(月)
6.Day-of-Week (周)
7.Year(年)

二、各字段的含义
(1)*:表示匹配域的任意值。假如在Minutes域中使用*,表示每分钟都会触发。
0 * 9 * * ? 表示每天从9点开始,每分钟触发一次,运行一个小时

(2)?:只能用在DayofMonth和DayofWeek两个域,指没有具体的值。当着两个表达式其中一个被指定后,为了避免冲突,需要将另一个值设为?。例如:想在每月20日触发调度,不管20号是星期几,只能用如下写法:0 0 0 20 * ?,其中最后以为只能用“?”,而不能用“*”。
0 0 0 20 * ? 表示每个月20号触发
0 0 0 ? * WED 表示每个星期三触发
0 0 0 ? * 4 表示每个星期三触发
(3),:表示枚举值。
0 0 0 1,20 * ? 表示在每月的1号、20号触发
(4)-:表示指定范围。
0 0 0 1-20 * ? 表示每个月的1号到20号触发
(5)/:被用于指定增量。
0 15/30 0 20 * ? 从每月20号的0点15分运行,每隔30分钟触发一次

6)L:只能出现在DayofMonth和DayofWeek域。在DayofMonth使用L,表示每月最后一天触发,在DayofWeek使用
0 0 0 L * ? 表示每个月的最后一天触发
0 0 0 ? * L 表示每个星期六触发
0 0 0 ? * 7L 表示每个月的最后一个星期六触发
(7)W:表示有效工作日(周一到周五)。只能出现在DayofMonth,配合指定日期使用。系统将在指定日期的最近的有效工作日触发。例如:在 DayofMonth使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。如果5日是星期天,则在6日(周一)触发;如果5日在星期一到星期五中的一天,则就在5日触发。另外一点,W的最近寻找不会跨过月份 。
0 0 0 5W * ? 表示在每月5号最近的一个有效工作日触发
0 0 0 LW * ? 表示在每个月的最后一天最近的有效工作日
(8)#:用于第几个星期几,只能在DayofWeek中使用
0 0 0 ? * 4#2 表示每个月的第二个星期三触发

猜你喜欢

转载自www.cnblogs.com/yanyh/p/9958151.html
今日推荐