quartz是什么意思

更新时间:2022-11-26 05:33:08 阅读: 评论:0


2022年11月26日发(作者:dima bilan)

java项⽬中定时任务之Quartz的应⽤

Quartz是个开放源码项⽬,提供了丰富的作业调度集。我⽬前接触到的quartz只是在我做的java项⽬中定时执⾏任务,我的项⽬因为是在

spring的基础上搭建的想要整合quartz⾮常的简单。

对于⾮spring项⽬的应⽤,它也很强⼤因为我没有实际测试过不做介绍。如果有需要的可以查看软件⼯程师MichaelLipton和IT架构师

SoobaekJang对QuartzAPI进⾏的介绍。链接地址:

下⾯主要说⼀个quartz在spring项⽬中的应⽤

⾸先添加所需要的jar包:和spring框架所需要的架包

⾸先写个⼀个定时执⾏任务的类

publicclassQuartzJob{

publicvoidwork()

{

Dated=newDate();

SimpleDateFormatsdf=newSimpleDateFormat("HH:mm:");//时:分:秒:毫秒

n("Quartz的任务调度"+(d));

}

//⼿动启动测试是否定时任务是否编写成功

publicstaticvoidmain(String[]args){

String[]configs={"file:D:/Workspaces/MyEclip8.5/.metadata/.me_tcat/webapps/zcz_test/WEB-INF/class/"};

ApplicationContextac=newClassPathXmlApplicationContext(configs);

}

}

在写⼀个spring的配置⽂件(名字随便起,但要在引⽤)

<?xmlversion="1.0"encoding="UTF-8"?>

如果把id为localQuartzScheduler的bean中添加上lazy-init='fal'那么容器启动就会执⾏调度程序.如果想⼿动启动则运⾏上⾯的类就⾏

在触发器中可以配置多个定时任务,如图上⾯代码注销的地⽅,关于quartz的定时时间的写法规范在本⽂的最后说明

这些星号由左到右按顺序代表:*******

格式:[秒][分][⼩时][⽇][⽉][周][年]

序号说明是否必填允许填写的值允许的通配符

1秒是0-59,-*/

2分是0-59,-*/

3⼩时是0-23,-*/

4⽇是1-31,-*?/LW

5⽉是1-12orJAN-DEC,-*/

6周是1-7orSUN-SAT,-*?/L

#7年否empty或1970-2099,-*/

通配符说明:

(1)*表⽰所有值.例如:在分的字段上设置"*",表⽰每⼀分钟都会触发。

(2)?表⽰不指定值。使⽤的场景为不需要关⼼当前设置这个字段的值。例如:要在每⽉的10号触发⼀个操作,但不关⼼是周⼏,所以需要

周位置的那个字段设置为"?"具体设置为00010*?

(3)-表⽰区间。例如在⼩时上设置"10-12",表⽰10,11,12点都会触发。

(4),表⽰指定多个值,例如在周字段上设置"MON,WED,FRI"表⽰周⼀,周三和周五触发

(5)/⽤于递增触发。如在秒上⾯设置"5/15"表⽰从5秒开始,每增15秒触发(5,20,35,50)。在⽉字段上设置'1/3'所⽰每⽉1号开始,

每隔三天触发⼀次。

(6)L表⽰最后的意思。在⽇字段设置上,表⽰当⽉的最后⼀天(依据当前⽉份,如果是⼆⽉还会依据是否是润年[leap]),在周字段上表⽰

星期六,相当于"7"或"SAT"。如果在"L"前加上数字,则表⽰该数据的最后⼀个。例如在周字段上设置"6L"这样的格式,则表⽰“本⽉最后⼀

个星期五"

(7)W表⽰离指定⽇期的最近那个⼯作⽇(周⼀⾄周五).例如在⽇字段上设置"15W",表⽰离每⽉15号最近的那个⼯作⽇触发。如果15号

正好是周六,则找最近的周五(14号)触发,如果15号是周未,则找最近的下周⼀(16号)触发.如果15号正好在⼯作⽇(周⼀⾄周五),则就在

该天触发。如果指定格式为"1W",它则表⽰每⽉1号往后最近的⼯作⽇触发。如果1号正是周六,则将在3号下周⼀触发。(注,"W"前只能设

置具体的数字,不允许区间"-").

(8)'L'和'W'可以⼀组合使⽤。如果在⽇字段上设置"LW",则表⽰在本⽉的最后⼀个⼯作⽇触发(⼀般指发⼯资)

#序号(表⽰每⽉的第⼏个周⼏),例如在周字段上设置"6#3"表⽰在每⽉的第三个周六.注意如果指定"#5",正好第五周没有周六,则不会触发

该配置(⽤在母亲节和⽗亲节再合适不过了)

(9)周字段的设置,若使⽤英⽂字母是不区分⼤⼩写的MON与mon相同.

常⽤⽰例:

0012**?每天12点触发

01510?**每天10点15分触发

01510**?每天10点15分触发

01510**?*每天10点15分触发

01510**?20052005年每天10点15分触发

0*14**?每天下午的2点到2点59分每分触发

00/514**?每天下午的2点到2点59分(整点开始,每隔5分触发)

00/514,18**?每天下午的2点到2点59分(整点开始,每隔5分触发)每天下午的18点到18点59分(整点开始,每隔5分触发)

00-514**?每天下午的2点到2点05分每分触发

010,4414?3WED3⽉分每周三下午的2点10分和2点44分触发(特殊情况,在⼀个时间设置⾥,执⾏两次或两次以上的情况)

0592?*FRI每周5凌晨2点59分触发;

01510?*MON-FRI从周⼀到周五每天上午的10点15分触发

0151015*?每⽉15号上午10点15分触发

01510L*?每⽉最后⼀天的10点15分触发

01510?*6L每⽉最后⼀周的星期五的10点15分触发

01510?*6L2002-2005从2002年到2005年每⽉最后⼀周的星期五的10点15分触发

01510?*6#3每⽉的第三周的星期五开始触发

00121/5*?每⽉的第⼀个中午开始每隔5天触发⼀次

011111111?每年的11⽉11号11点11分触发(光棍节)

本文发布于:2022-11-26 05:33:08,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/23163.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图