spring配置定时任务

 

如​何​在​S​p​r​i​n​g​中​配​置​定​时​任​务

首先,如果你在web.xml文件中的配置是这样的:

 

1 <context-param>
2     <param-name>contextConfigLocation</param-name>
3     <param-value>/WEB-INF/classes/applicationContext-*.xml</param-value>
4 </context-param>

 

那么需要在工程下创建一个以applicationContext-为开头的xml文件

eg:applicationContext-jobconfig.xml

xml的头和结尾部分跟其他spring配置文件相似,就不赘述,正文如下:

 1 <bean id="youJobName(类别名)" class="com.******.YourJobClassLocation(类的定位)" />
 2 
 3   <bean id="doYourJob(别名)" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
 4 
 5   <property name="targetObject">
 6 
 7     <ref bean="youJobName(类别名)""/>
 8 
 9   </property>
10 
11   <property name="targetMethod">
12 
13     <value>runMethodName(定时执行的方法名)</value>
14 
15    </property>
16 
17 </bean>
18 
19 <bean id="youJobNameTrigger(触发器别名)" class="org.springframework.scheduling.quartz.CronTriggerBean">
20 
21   <property name="jobDetail">
22 
23     <ref bean="doYourJob(别名)""/>
24 
25   </property>
26 
27   <property name="cronExpression">
28 
29     <value>0 0/20 * * * ?(定时的时间配置)</value>
30 
31   </property>
32 
33 </bean> 
34 
35 <bean id="doScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
36 
37   <property name="triggers">
38 
39     <list>
40 
41       <ref local="youJobNameTrigger(触发器别名)"/>
42 
43     </list>
44 
45   </property>
46 
47 </bean>

这样的配置几本就可以运转了,

但是有一个地方可能是你需要根据你的需求来确定的,那就是触发时间。

 下面有一些关于时间配置的说明:

字段顺序允许值允许的特殊字符

秒       0-59, - * /

分       0-59, - * /

小时    0-23, - * /

日期    1-31, - * ? / L W C

月份    1-12或者JAN-DEC, - * /

星期    1-7或者SUN-SAT, - * ? / L C #

年(可选)留空, 1970-2099, - * / 

关于cronExpression的介绍:

字段允许值允许的特殊字符

0-59 , - * /

0-59 , - * /

小时

0-23 , - * /

日期

1-31 , - * ? / L W C

月份

1-12

或者

JAN-DEC , - * /

星期

1-7

或者

SUN-SAT , - * ? / L C #

年(可选)留空

, 1970-2099 , - * /

表达式意义

"0 0 12 * * ?"

每天中午12点触发

"0 15 10 ? * *"

每天上午10:15触发

"0 15 10 * * ?"

每天上午10:15触发

"0 15 10 * * ? *"

每天上午10:15触发

"0 15 10 * * ? 2005"

2005年的每天上午10:15触发

"0 * 14 * * ?"

在每天下午2点到下午2:59期间的每1分钟触发

"0 0/5 14 * * ?"

在每天下午2点到下午2:55期间的每5分钟触发 

"0 0/5 14,18 * * ?"

在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

"0 0-5 14 * * ?"

在每天下午2点到下午2:05期间的每1分钟触发 

"0 10,44 14 ? 3 WED"

每年三月的星期三的下午2:10和2:44触发

"0 15 10 ? * MON-FRI"

周一至周五的上午10:15触发

"0 15 10 15 * ?"

每月15日上午10:15触发

"0 15 10 L * ?"

每月最后一日的上午10:15触发

"0 15 10 ? * 6L"

每月的最后一个星期五上午10:15触发

"0 15 10 ? * 6L 2002-2005" 2002

年至2005年的每月的最后一个星期五上午10:15触发

"0 15 10 ? * 6#3"

每月的第三个星期五上午10:15触发每天早上6点

0 6 * * *

每两个小时

0 */2 * * *

晚上11点到早上7点之间每两个小时,早上八点

0 23-7/2,8 * * *

每个月的4号和每个礼拜的礼拜一到礼拜三的早上11

0 11 4 * 1-3

11日早上4

0 4 1 1 *

posted @ 2014-04-23 12:01  尐sんΙ頭  阅读(214)  评论(0)    收藏  举报