定时器(Quartz) [kwɔːts]
Quartz定时器就是对java中Timer定时器的封装,支持Cron表达式定时
使用步骤:
1.定义任务类(指定到指定时间干什么)
2.将任务类配置到JobDetail类中
3.将JobDetail与Trigger(触发器)配对(Cron表达式是Trigger)
4.将JboDetail+Trigger放入调度中心
4.配置注解扫描
____________________________________________________________________
上面用到的Cron表达式
源于Unix系统中的Cron表达式,精度只到分钟
我们使用的Cron表达式,精度到秒
位数也从Unix中的6位变为7位=>七子表达式
秒 分 时 日 月 周 年
*:号
任意值 *****?*(每年的每月的每日的每份的每一秒都执行一次)
?:号只能使用在周或日位置上(控制那一天执行时,要么通过日来表达要么通过周来表达,二选一) 表示忽略或省略
某一位上需要填入多个值时,可以将多个值用逗号隔开
0,15,30,45 * * ? * * *(每15秒执行一次)
-:表达范围 1-10表示1到10的范围
0-15 * * ? * * *(每分钟的0到15秒之间每秒执行一次)
/:表达间隔 0/15 从开始每隔15单位执行(0/15 * * ? * * *)
0 0 20 1/3 * ? *(每月从1号开始每隔三天晚上八点执行一次)
L:(last)表示最后一个单位,只能用在日或周上
0 0 21 L * ? *(每月最后一天的晚上9点)
0 0 21 ? 0 2L *(每月最后一个周一的晚上9点)
w:(work)表示工作日,(周一到周五工作日,只能使用在上)
0 0 21 w * ? *(每月周一到周五的晚上九点执行)
0 0 21 15w * ? *(每月的15号晚上9点执行,15号不是工作日就到15号最近的工作日执行,如果15号是周六name就会在周五触发,如果是周日就在周一触发)
#:(Number)
表示第几个指定单位,只能使用在周上
0 0 21 ? * 1#3 *(每月的第三个周日的晚上九点执行)