首页>>百科常识

spring quartz如何动态配置时间

今天宠物迷的小编给各位宠物饲养爱好者分享动态设置quartz时间的宠物知识,其中也会对spring quartz如何动态配置时间进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!

spring quartz如何动态配置时间

spring quartz如何动态配置时间

Spring Quartz如何动态配置时间

1. 目的:动态设置时间,触发相应的任务



2. 系统架构为 struts + spring + hibernate


3. 实现步骤:
在页面上设置时间;
将时间转换为Unix Cron Expression;
将转换后的时间规则表达式记录到数据库中(也可以写入xml文件中,这里是项目需要记录入数据库中);
从数据库中得到相应的时间规则表达式;
更新您的任务触发器的时间设置;
RESCHEDULE THE JOB。; - )
4. 具体实现细节:

1) 在页面上设置时间
根据具体的业务需求,设置时间规则,下面以某一项目为例,需要 按每月、每周、自定义分为三种规则。

1
2 执行这个任务
3
4 每月
5 每周
6 自定义
7
8
9
10

每月则需要选择该月的第几个星期的星期几

1
2 选择第几个星期
3
4
5 一
6 二
7 三
8 四
9
10
11 星期日
12 星期一
13 星期二
14 星期三
15 星期四
16 星期五
17 星期六
18
19
20
21

每周则需要选择星期几

1
2 选择星期
3
4
5 星期日
6 星期一
7 星期二
8 星期三
9 星期四
10 星期五
11 星期六
12
13
14
15

自定义则选择具体的日期,如 2007-1-10

三种规则都需要设定时间点

1
2 起始时间
3
4
5 上午
6 下午
7
8
9 1
10 2
11 3
12 4
13 5
14 6
15 7
16 8
17 9
18 10
19 11
20 12
21
22
23 13
24 14
25 15
26 16
27 17
28 18
29 19
30 20
31 21
32 22
33 23
34 0
35 点
36 分
37 秒(0-59之间的整数)
38
39
40

OK. 这样我们的页面设置就完成了。: - )
上回说到,我们的设置页面已经做好了,接下来就是将时间转换为Unix Cron Expression。

2) 将时间转换为Unix Cron Expression

需要ActionForm将页面表单数据映射到Action中,然后在Action中转换为cron expression:

1 SchedulerForm schedulerForm = (SchedulerForm) form;
2 String jobName = schedulerForm.getJobName();
3 String cronExpression = "" ;
4 String[] commonNeeds = {schedulerForm.getSecond(), schedulerForm.getMinute(), schedulerForm.getHour()};
5 String[] monthlyNeeds = {schedulerForm.getWeek(), schedulerForm.getDayOfMonth()} ;
6 String weeklyNeeds = schedulerForm.getDayOfWeek();
7 String userDefinedNeeds = schedulerForm.getDate();
8 String everyWhat = schedulerForm.getEveryWhat();
9 // 得到时间规则
10 cronExpression = CronExpConversion.getCronExpression(everyWhat, commonNeeds,
11 monthlyNeeds, weeklyNeeds, userDefinedNeeds);
12

我定义了一个 规则类来处理转换规则(写得不是很好 能用就行 嘿嘿)

1
2 /**
3 * 页面设置转为UNIX cron expressions 转换类
4 * CronExpConversion
5 */
6 public class CronExpConversion {
7
8 /**
9 * 页面设置转为UNIX cron expressions 转换算法
10 * @param everyWhat
11 * @param commonNeeds 包括 second minute hour
12 * @param monthlyNeeds 包括 第几个星期 星期几
13 * @param weeklyNeeds 包括 星期几
14 * @param userDefinedNeeds 包括具体时间点
15 * @return cron expression
16 */
17 public static String convertDateToCronExp(String everyWhat,
18 String[] commonNeeds, String[] monthlyNeeds, String weeklyNeeds,
19 String userDefinedNeeds) {
20 String cronEx = "" ;
21 String commons = commonNeeds[ 0 ] + " " + commonNeeds[ 1 ] + " "
22 + commonNeeds[ 2 ] + " " ;
23 String dayOfWeek = "" ;
24 if ( " monthly " .equals(everyWhat)) {
25 // eg.: 6#3 (day 6 = Friday and "#3" = the 3rd one in the
26 // month)
27 dayOfWeek = monthlyNeeds[ 1 ]
28 + CronExRelated.specialCharacters
29 .get(CronExRelated._THENTH) + monthlyNeeds[ 0 ];
30 cronEx = (commons
31 + CronExRelated.specialCharacters.get(CronExRelated._ANY)
32 + " "
33 + CronExRelated.specialCharacters.get(CronExRelated._EVERY)
34 + " " + dayOfWeek + " " ).trim();
35 } else if ( " weekly " .equals(everyWhat)) {
36 dayOfWeek = weeklyNeeds; // 1
37 cronEx = (commons
38 + CronExRelated.specialCharacters.get(CronExRelated._ANY)
39 + " "
40 + CronExRelated.specialCharacters.get(CronExRelated._EVERY)
41 + " " + dayOfWeek + " " ).trim();
42 } else if ( " userDefined " .equals(everyWhat)) {
43 String dayOfMonth = userDefinedNeeds.split( " - " )[ 2 ];
44 if (dayOfMonth.startsWith( " 0 " )) {
45 dayOfMonth = dayOfMonth.replaceFirst( " 0 " , "" );
46 }
47 String month = userDefinedNeeds.split( " - " )[ 1 ];
48 if (month.startsWith( " 0 " )) {
49 month = month.replaceFirst( " 0 " , "" );
50 }
51 String year = userDefinedNeeds.split( " - " )[ 0 ];
52 // FIXME 暂时不加年份 Quartz报错
53 /* cronEx = (commons + dayOfMonth + " " + month + " "
54 + CronExRelated.specialCharacters.get(CronExRelated._ANY)
55 + " " + year).trim(); */
56 cronEx = (commons + dayOfMonth + " " + month + " "
57 + CronExRelated.specialCharacters.get(CronExRelated._ANY)
58 + " " ).trim();
59 }
60 return cronEx;
61 }
62 }
63
这样就将页面的时间设置转为了Cron Expression。

书接上回,上回说到,我们已经将页面的时间设置转为了Cron Expression,下面我记录了时间规则。

3) 记录时间规则

我将时间规则存入数据库中,目的是为了生成历史日志,也可以存入XML文件中。当然您也可以省略此步,直接将转换后的规则放入相应的Quartz trigger中。

4) 更新任务触发器的时间设置

到了关键的一步了,也是最简单的一步,一个方法就可以实现了。
首先,我们需要通过trigger的名称得到一个CronTriggerBean;
其次,通过trigger的setCronExpression(String cronExp)方法将新的表达式注入;
最后,RESCHEDULE THE JOB,OK!

怎样动态的配置job和cronExpression?应用quartz实现定时任务

public void task() throws SchedulerException { // Initiate a Schedule Factory SchedulerFactory schedulerFactory = new StdSchedulerFactory(); // Retrieve a scheduler from schedule factory Scheduler scheduler = schedulerFactory.getScheduler(); // current time long ctime = System.currentTimeMillis(); // Initiate JobDetail with job name, job group, and executable job class JobDetail jobDetail = new JobDetail("jobDetail2", "jobDetailGroup2", SimpleQuartzJob.class); // Initiate CronTrigger with its name and group name CronTrigger cronTrigger = new CronTrigger("cronTrigger", "triggerGroup2"); try { // setup CronExpression CronExpression cexp = new CronExpression("取全局变量的表达式值"); // Assign the CronExpression to CronTrigger cronTrigger.setCronExpression(cexp); } catch (Exception e) { e.printStackTrace(); } // schedule a job with JobDetail and Trigger scheduler.scheduleJob(jobDetail, cronTrigger); // start the scheduler scheduler.start(); }

quartz如何在spring动态配置时间

Spring Quartz如何动态配置时间

1. 目的:动态设置时间,触发相应的任务

2. 系统架构为 struts + spring + hibernate

3. 实现步骤:
在页面上设置时间;
将时间转换为Unix Cron Expression;
将转换后的时间规则表达式记录到数据库中(也可以写入xml文件中,这里是项目需要记录入数据库中);
从数据库中得到相应的时间规则表达式;
更新您的任务触发器的时间设置;
RESCHEDULE THE JOB。; - )
4. 具体实现细节:

1) 在页面上设置时间
根据具体的业务需求,设置时间规则,下面以某一项目为例,需要 按每月、每周、自定义分为三种规则。

1
2 执行这个任务
3
4 每月
5 每周
6 自定义
7
8
9
10

每月则需要选择该月的第几个星期的星期几

1
2 选择第几个星期
3
4
5 一
6 二
7 三
8 四
9
10
11 星期日
12 星期一
13 星期二
14 星期三
15 星期四
16 星期五
17 星期六
18
19
20
21

每周则需要选择星期几

1
2 选择星期
3
4
5 星期日
6 星期一
7 星期二
8 星期三
9 星期四
10 星期五
11 星期六
12
13
14
15

自定义则选择具体的日期,如 2007-1-10

三种规则都需要设定时间点

1
2 起始时间
3
4
5 上午
6 下午
7
8
9 1
10 2
11 3
12 4
13 5
14 6
15 7
16 8
17 9
18 10
19 11
20 12
21
22
23 13
24 14
25 15
26 16
27 17
28 18
29 19
30 20
31 21
32 22
33 23
34 0
35 点
36 分
37 秒(0-59之间的整数)
38
39
40

OK. 这样我们的页面设置就完成了。: - )
上回说到,我们的设置页面已经做好了,接下来就是将时间转换为Unix Cron Expression。

2) 将时间转换为Unix Cron Expression

需要ActionForm将页面表单数据映射到Action中,然后在Action中转换为cron expression:

1 SchedulerForm schedulerForm = (SchedulerForm) form;
2 String jobName = schedulerForm.getJobName();
3 String cronExpression = "" ;
4 String[] commonNeeds = {schedulerForm.getSecond(), schedulerForm.getMinute(), schedulerForm.getHour()};
5 String[] monthlyNeeds = {schedulerForm.getWeek(), schedulerForm.getDayOfMonth()} ;
6 String weeklyNeeds = schedulerForm.getDayOfWeek();
7 String userDefinedNeeds = schedulerForm.getDate();
8 String everyWhat = schedulerForm.getEveryWhat();
9 // 得到时间规则
10 cronExpression = CronExpConversion.getCronExpression(everyWhat, commonNeeds,
11 monthlyNeeds, weeklyNeeds, userDefinedNeeds);
12

我定义了一个 规则类来处理转换规则(写得不是很好 能用就行 嘿嘿)

1
2 /**
3 * 页面设置转为UNIX cron expressions 转换类
4 * CronExpConversion
5 */
6 public class CronExpConversion {
7
8 /**
9 * 页面设置转为UNIX cron expressions 转换算法
10 * @param everyWhat
11 * @param commonNeeds 包括 second minute hour
12 * @param monthlyNeeds 包括 第几个星期 星期几
13 * @param weeklyNeeds 包括 星期几
14 * @param userDefinedNeeds 包括具体时间点
15 * @return cron expression
16 */
17 public static String convertDateToCronExp(String everyWhat,
18 String[] commonNeeds, String[] monthlyNeeds, String weeklyNeeds,
19 String userDefinedNeeds) {
20 String cronEx = "" ;
21 String commons = commonNeeds[ 0 ] + " " + commonNeeds[ 1 ] + " "
22 + commonNeeds[ 2 ] + " " ;
23 String dayOfWeek = "" ;
24 if ( " monthly " .equals(everyWhat)) {
25 // eg.: 6#3 (day 6 = Friday and "#3" = the 3rd one in the
26 // month)
27 dayOfWeek = monthlyNeeds[ 1 ]
28 + CronExRelated.specialCharacters
29 .get(CronExRelated._THENTH) + monthlyNeeds[ 0 ];
30 cronEx = (commons
31 + CronExRelated.specialCharacters.get(CronExRelated._ANY)
32 + " "
33 + CronExRelated.specialCharacters.get(CronExRelated._EVERY)
34 + " " + dayOfWeek + " " ).trim();
35 } else if ( " weekly " .equals(everyWhat)) {
36 dayOfWeek = weeklyNeeds; // 1
37 cronEx = (commons
38 + CronExRelated.specialCharacters.get(CronExRelated._ANY)
39 + " "
40 + CronExRelated.specialCharacters.get(CronExRelated._EVERY)
41 + " " + dayOfWeek + " " ).trim();
42 } else if ( " userDefined " .equals(everyWhat)) {
43 String dayOfMonth = userDefinedNeeds.split( " - " )[ 2 ];
44 if (dayOfMonth.startsWith( " 0 " )) {
45 dayOfMonth = dayOfMonth.replaceFirst( " 0 " , "" );
46 }
47 String month = userDefinedNeeds.split( " - " )[ 1 ];
48 if (month.startsWith( " 0 " )) {
49 month = month.replaceFirst( " 0 " , "" );
50 }
51 String year = userDefinedNeeds.split( " - " )[ 0 ];
52 // FIXME 暂时不加年份 Quartz报错
53 /* cronEx = (commons + dayOfMonth + " " + month + " "
54 + CronExRelated.specialCharacters.get(CronExRelated._ANY)
55 + " " + year).trim(); */
56 cronEx = (commons + dayOfMonth + " " + month + " "
57 + CronExRelated.specialCharacters.get(CronExRelated._ANY)
58 + " " ).trim();
59 }
60 return cronEx;
61 }
62 }
63
这样就将页面的时间设置转为了Cron Expression。

书接上回,上回说到,我们已经将页面的时间设置转为了Cron Expression,下面我记录了时间规则。

3) 记录时间规则

我将时间规则存入数据库中,目的是为了生成历史日志,也可以存入XML文件中。当然您也可以省略此步,直接将转换后的规则放入相应的Quartz trigger中。

4) 更新任务触发器的时间设置

到了关键的一步了,也是最简单的一步,一个方法就可以实现了。
首先,我们需要通过trigger的名称得到一个CronTriggerBean;
其次,通过trigger的setCronExpression(String cronExp)方法将新的表达式注入;
最后,RESCHEDULE THE JOB,OK!

spring配置定时任务设置为每天凌晨2点执行和每小时执行一次如何配置。

每天凌晨2点 0 0 2 * * ?和每天隔一小时 0 * */1 * * ? 例1:每隔5秒执行一次:*/5 * * * * ? 例2:每隔5分执行一次:0 */5 * * * ? 在26分、29分、33分执行一次:0 26,29,33 * * * ? 例3:每天半夜12点30分执行一次:0 30 0 * * ? (注意日期域为0不是24) 每天凌晨1点执行一次:0 0 1 * * ? 每天上午10:15执行一次: 0 15 10 ? * * 或 0 15 10 * * ? 或 0 15 10 * * ? * 每天中午十二点执行一次:0 0 12 * * ? 每天14点到14:59分,每1分钟执行一次:0 * 14 * * ? 每天14点到14:05分,每1分钟执行一次:0 0-5 14 * * ? 每天14点到14:55分,每5分钟执行一次:0 0/5 14 * * ? 每天14点到14:55分,和18点到18点55分,每5分钟执行一次:0 0/5 14,18 * * ? 每天18点执行一次:0 0 18 * * ? 每天18点、22点执行一次:0 0 18,22 * * ? 每天7点到23点,每整点执行一次:0 0 7-23 * * ? 每个整点执行一次:0 0 0/1 * * ?

在spring中如何配置quartz使得quartz能动态

quartz我没用过,不过类似的功能实现过——将spring拦截器要拦截的方法的路径保存在数据库中,启动时加载。
按我的经验看,你说的这个问题是实现的问题,不是配置的问题。

skone quartz手表日期怎么调整

CASIO SPORT 登山系列款式:男式外形:圆形机芯:光动能重量:78g尺寸:56.2×50.6×13.9mm表带厚:0.3 厘米镜面材质:高强度玻璃表壳材质:合成树脂钢表带材质:合成树脂表盘颜色:黑色表带颜色:黑色表扣:扣带式防水深度:200 米功能:太阳能;三重感应器;罗盘功能;测高功能;气压测量;温度测量;抗低温(零下10摄氏度);月球资料;潮汐图;全自动电子荧光照明;200米防水;世界时间(33个城市);秒表(精确到1/100秒);倒计时;闹铃;电量指示符;全自动日历;12/24小时时制;操作音开关 品牌介绍: Casio卡西欧是日本三大知名手表品牌之一,创业之始为计算机制造商的卡西欧计算机股份有限公司现已发展到拥有计算器、电子手表、电子乐器、液晶电视等产品,这些产品帮助世界各地的人们获取信息。多年来以真正多功能的G-SHOCK手表著称于世。卡西欧所代表的活力、年轻、时尚、多功能的品牌形象已深入民心。卡西欧一贯以来所倡导的“腕上科技”精神在中国也被得以沿袭和传播。 CASIO手表性能特点: 卡西欧手表有两大类别,一种是运动休闲形象的跳字表;一种是年轻时尚的指针表。一年四季会因应季节的变化推出当季的特色产品和新品,如每年的夏季和冬季G-SHOCK和BABY-G都会有适合夏季和冬季极限运动的极限腕表推出;海豚鲸鱼纪念版、夏季珊瑚系列、PUPPY系列、情侣对表等等。今年卡西欧产品的重点将强调功能,如太阳能、10年电池、超强背光等卡西欧的强势功能。 CASIO手表防水说明:生活防水:溅水雨水洗手50m防水:溅水雨水洗车冷水淋浴游泳跳水100m防水:溅水雨水洗车冷水淋浴游泳跳水浮潜200m防水:溅水雨水洗车冷水淋浴游泳跳水浮潜深海潜水 CASIO共有8个系列的手表1、OCEANUSOCEANUS电波表是世界上首款**5马达全金属的电波太阳能手表,独创的高科技电波太阳功能。2、G-SHOCK电波表系列在G-SHOCK完美的防震防水结构之中,巧妙加入了电波接收和太阳能系统。同时继续加入G-SHOCK专业强大的功能,防泥防尘防锈,双重感应器,可测量温度/气压/高度的变化,以及世界领先的六局电波技术,再现技术与设计的完美神话。经典系列最新推出的经典系列GS-1001为专成熟男性设计的新型GIEZ系列手表。它采用五马达驱动,敏感防磁技术,表款是金属和树脂材质的完美结合,构造双重防震。1/20秒的赛跑秒表,并包含了27个城市的世界时间。七个指针的表盘设计,一目了然的显示出多重信息。同时GIEZ系列还在防震装置结构上,增加7指针的秒表及世界时间功能,再次表现出G-SHOCK精湛技术。赛车系列被誉为“陆上战机”的F1方程式赛车总能激发追求**一族喜爱狂飙的原始潜能。 全新的赛车系列就是以F1赛车的仪表盘为设计出发点,流线型的外观设计加上锻造钢的表框保护圈,使人感受到在跑道上飞车狂飙的**。在这一系列的手表中,G-SHOCK的防震防水性能得到了极致的发挥。摩托系列如今G-SHOCK推出的G-300系列,除承袭G-SHOCK一贯的粗犷坚韧的风格外,还汲取极速摩托赛事风驰电掣的竞技理念。方形或圆形的表盘设计,指针和数字双显设计有如摩托车仪表盘,想象一下佩戴此款手表是不是你也可以极速奔跑起来呢?颇具轮胎质感的表带有皮带和塑胶带多种选择,佩戴感觉极为舒适,明亮的蓝色,褐色,红色的表盘液晶色,时尚的色彩,活泼可爱的运动外型适合热爱运动的消费者。主题系列25周年纪念版——背刻是世界知名涂鸦艺术家Eric Haze先生亲自为G-SHOCK 25周年所设计的特殊标志。 3、Baby-G经典系列沿袭经典Baby-G强大功能,不断追求时尚风格,适应不同需求的女性消费者。小猫小狗系列Baby-G的小猫小狗系列,不仅有防震,100米、200米防水的强大功能,还有小猫小狗的特殊背光图案。背刻以及表带上的特殊图案也为此款表增添收藏价值。Sweet PoisonSweet Poison——为女人度身订做的功能与时尚迷人而时尚,足够成熟而懂得选择;足够童真而懂得逗自己开心。芬芳中带着一丝危险的气息,让女性在时尚中找到快乐。主题系列这一系列的BABY-G新品是为现代积极热情,对生活充满好奇心,精力充沛的年轻女孩而设计的BG-5600新款。精巧细致的外形,并采用

如何动态修改quartz的执行时间

Spring Quartz如何动态配置时间 1. 目的:动态设置时间,触发相应的任务 2. 系统架构为 struts + spring + hibernate 3. 实现步骤: 在页面上设置时间; 将时间转换为Unix Cron Expression; 将转换后的时间规则表达式记录到数据库中(也可以写入xml文件中,这里是项目需要记录入数据库中); 从数据库中得到相应的时间规则表达式; 更新您的任务触发器的时间设置; RESCHEDULE THE JOB。; - ) 4. 具体实现细节: 1) 在页面上设置时间 根据具体的业务需求,设置时间规则,下面以某一项目为例,需要 按每月、每周、自定义分为三种规则。 1 2 执行这个任务 3 4 每月 5 每周 6 自定义 7 8 9 10 每月则需要选择该月的第几个星期的星期几 1 2 选择第几个星期 3 4 5 一 6 二 7 三 8 四 9 10 11 星期日 12 星期一 13 星期二 14 星期三 15 星期四 16 星期五 17 星期六 18 19 20 21 每周则需要选择星期几 1 2 选择星期 3 4 5 星期日 6 星期一 7 星期二 8 星期三 9 星期四 10 星期五 11 星期六 12 13 14 15 自定义则选择具体的日期,如 2007-1-10 三种规则都需要设定时间点 1 2 起始时间 3 4 5 上午 6 下午 7 8 9 1 10 2 11 3 12 4 13 5 14 6 15 7 16 8 17 9 18 10 19 11 20 12 21 22 23 13 24 14 25 15 26 16 27 17 28 18 29 19 30 20 31 21 32 22 33 23 34 0 35 点 36 分 37 秒(0-59之间的整数) 38 39 40 OK. 这样我们的页面设置就完成了。: - ) 上回说到,我们的设置页面已经做好了,接下来就是将时间转换为Unix Cron Expression。 2) 将时间转换为Unix Cron Expression 需要ActionForm将页面表单数据映射到Action中,然后在Action中转换为cron expression: 1 SchedulerForm schedulerForm = (SchedulerForm) form; 2 String jobName = schedulerForm.getJobName(); 3 String cronExpression = "" ; 4 String[] commonNeeds = {schedulerForm.getSecond(), schedulerForm.getMinute(), schedulerForm.getHour()}; 5 String[] monthlyNeeds = {schedulerForm.getWeek(), schedulerForm.getDayOfMonth()} ; 6 String weeklyNeeds = schedulerForm.getDayOfWeek(); 7 String userDefinedNeeds = schedulerForm.getDate(); 8 String everyWhat = schedulerForm.getEveryWhat(); 9 // 得到时间规则 10 cronExpression = CronExpConversion.getCronExpression(everyWhat, commonNeeds, 11 monthlyNeeds, weeklyNeeds, userDefinedNeeds); 12 我定义了一个 规则类来处理转换规则(写得不是很好 能用就行 嘿嘿) 1 2 /** 3 * 页面设置转为UNIX cron expressions 转换类 4 * CronExpConversion 5 */ 6 public class CronExpConversion { 7 8 /** 9 * 页面设置转为UNIX cron expressions 转换算法 10 * @param everyWhat 11 * @param commonNeeds 包括 second minute hour 12 * @param monthlyNeeds 包括 第几个星期 星期几 13 * @param weeklyNeeds 包括 星期几 14 * @param userDefinedNeeds 包括具体时间点 15 * @return cron expression 16 */ 17 public static String convertDateToCronExp(String everyWhat, 18 String[] commonNeeds, String[] monthlyNeeds, String weeklyNeeds, 19 String userDefinedNeeds) { 20 String cronEx = "" ; 21 String commons = commonNeeds[ 0 ] + " " + commonNeeds[ 1 ] + " " 22 + commonNeeds[ 2 ] + " " ; 23 String dayOfWeek = "" ; 24 if ( " monthly " .equals(everyWhat)) { 25 // eg.: 6#3 (day 6 = Friday and "#3" = the 3rd one in the 26 // month) 27 dayOfWeek = monthlyNeeds[ 1 ] 28 + CronExRelated.specialCharacters 29 .get(CronExRelated._THENTH) + monthlyNeeds[ 0 ]; 30 cronEx = (commons 31 + CronExRelated.specialCharacters.get(CronExRelated._ANY) 32 + " " 33 + CronExRelated.specialCharacters.get(CronExRelated._EVERY) 34 + " " + dayOfWeek + " " ).trim(); 35 } else if ( " weekly " .equals(everyWhat)) { 36 dayOfWeek = weeklyNeeds; // 1 37 cronEx = (commons 38 + CronExRelated.specialCharacters.get(CronExRelated._ANY) 39 + " " 40 + CronExRelated.specialCharacters.get(CronExRelated._EVERY) 41 + " " + dayOfWeek + " " ).trim(); 42 } else if ( " userDefined " .equals(everyWhat)) { 43 String dayOfMonth = userDefinedNeeds.split( " - " )[ 2 ]; 44 if (dayOfMonth.startsWith( " 0 " )) { 45 dayOfMonth = dayOfMonth.replaceFirst( " 0 " , "" ); 46 } 47 String month = userDefinedNeeds.split( " - " )[ 1 ]; 48 if (month.startsWith( " 0 " )) { 49 month = month.replaceFirst( " 0 " , "" ); 50 } 51 String year = userDefinedNeeds.split( " - " )[ 0 ]; 52 // FIXME 暂时不加年份 Quartz报错 53 /* cronEx = (commons + dayOfMonth + " " + month + " " 54 + CronExRelated.specialCharacters.get(CronExRelated._ANY) 55 + " " + year).trim(); */ 56 cronEx = (commons + dayOfMonth + " " + month + " " 57 + CronExRelated.specialCharacters.get(CronExRelated._ANY) 58 + " " ).trim(); 59 } 60 return cronEx; 61 } 62 } 63 这样就将页面的时间设置转为了Cron Expression。 书接上回,上回说到,我们已经将页面的时间设置转为了Cron Expression,下面我记录了时间规则。 3) 记录时间规则 我将时间规则存入数据库中,目的是为了生成历史日志,也可以存入XML文件中。当然您也可以省略此步,直接将转换后的规则放入相应的Quartz trigger中。 4) 更新任务触发器的时间设置 到了关键的一步了,也是最简单的一步,一个方法就可以实现了。 首先,我们需要通过trigger的名称得到一个CronTriggerBean; 其次,通过trigger的setCronExpression(String cronExp)方法将新的表达式注入; 最后,RESCHEDULE THE JOB,OK!

用java的Quartz包定时调用方法,我想实现每隔半小时调用一次方法,那个配置文件中时间的配置符号咋写的了

<!-- 常用的corn表达式 *隔5秒执行一次:*/5 * * * * ? *隔1分钟执行一次:0 */1 * * * ? *23点执行一次:0 0 23 * * ? *晨1点执行一次:0 0 1 * * ? *月1号凌晨1点执行一次:0 0 1 1 * ? *月最后一天23点执行一次:0 0 23 L * ? *周星期天凌晨1点实行一次:0 0 1 ? * L *在26分、29分、33分执行一次:0 26,29,33 * * * ? *的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ? --> 这是spring调用时,的符号公式

spring quartz配置每分钟执行一次,为什么启动项目只执行一次?

1.quartz中配置任务调度频率:





2、说明:
1)Cron表达式的格式:秒 分 时 日 月 周 年(可选)。
字段名 允许的值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日 1-31 , - * ? / L W C
月 1-12 or JAN-DEC , - * /
周几 1-7 or SUN-SAT , - * ? / L C #
年 (可选字段) empty, 1970-2099 , - * /

“?”字符:表示不确定的值
“,”字符:指定数个值
“-”字符:指定一个值的范围
“/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m
“L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X
“W”字符:指定离给定日期最近的工作日(周一到周五)
“#”字符:表示该月第几个周X。6#3表示该月第3个周五


2)Cron表达式范例:
每隔5秒执行一次:*/5 * * * * ?
每隔1分钟执行一次:0 */1 * * * ?
每天23点执行一次:0 0 23 * * ?
每天凌晨1点执行一次:0 0 1 * * ?
每月1号凌晨1点执行一次:0 0 1 1 * ?
每月最后一天23点执行一次:0 0 23 L * ?
每周星期天凌晨1点实行一次:0 0 1 ? * L
在26分、29分、33分执行一次:0 26,29,33 * * * ?
每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
3、启动项目只执行一次是因为容器是单实例执行的,不妨改成多实例试试。

quartz求助 每天定点执行一次,如0点执行此、1点执行、2点执行 以此类推,到23点

本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“spring quartz如何动态配置时间