早上起来,发现感冒了,鼻子不通气,头晕脑胀的很是难受,也没做点什么工作,总结下Quartz中的时间配置。
** Quartz ** 是一个Java的开源作业调度框架,可以帮助我们执行一些需要定时执行的业务逻辑,这些业务逻辑可以是单次执行的,也可以是周期性的。
在使用Quartz时,我们需要关注两个主要的对象,一个是我们想要执行的业务逻辑,一个是执行的时间。下面整理下执行时间的配置相关的信息。
格式: [秒] [分] [时] [日] [月] [周] [年]
| 名称 | 是否必填 | 允许填写的值或通配符 |
| :-------------: |:-------------:|: --------------------------------|
| 秒 | 是 | 0-59 - * / , |
| 分 | 是 | 0-59 - * / , |
| 时 | 是 | 0-23 - * / , |
| 日 | 是 | 1-31 - * / , ? L W |
| 月 | 是 | 1-12 - * / , JAN-DEC |
| 周 | 是 | 1-7 SUN-SAT - * ? , / L # |
| 年 | 否 |empty 1970-2099 - * / , |
通配符说明
- “-”:用于指定指定值的可选范围,如
1-10
; - “*”:用于匹配所有值,即对应位置的所有可选值都满足条件;
- “/”:用于递增触发,如 在分的位置设置
*/2
,表示每隔2分钟触发一次; - “,”:用于指定多个值的情况,如
MON,WED,FRI
; - “?”:用于忽略该位置的设置,如时间设置为
0 15 10 ? * MON-FRI
,表示每周的周一至周五10:15触发,无需关心是几号; - “L”:是last的意思,表示最后的意思,用在日上是表示最后一天,用在周上是指SAT,如果L与数字搭配使用,则表示最后一个第几天或周几。如
0 0 12 L * ?
表示每月的最后一天的12点触发,0 0 12 ? * 6L
- “W”:是workday的意思,表示周一到周五这五天工作日,与具体是数字或“L”联合使用,如
15W
表示每月离15日最近的工作日,如果15日是工作日,则15日触发,如果15日是周六,则14日触发,如果15日是周日,则16日触发。 - “#”:表示第几个周的周几,如设置为
6#3
,表示在第3个周的周六触发,如果设置的值没有,则不再触发。
简单示例:
-
0 0 10 7 * ?
每月7号是最开心的日子(因为发工资,哈哈) -
0 0 15 ? * FRI
每周五下午3点活动的好时候 -
0 11 11 11 11 ?
每年的11月11号 11点11分触发(光棍节)其实,只要记住顺序,根据自己的需要进行时间设置还是比较简单的,当然,普通的开发者使用的频率也不是特别高,感觉做运维的朋友会比较多的使用任务调度。
网友评论