定时批处理作业是J2EE企业应用里很重要的一环,用来在晚间进行财务挂账,数据转存,新闻联播等等操作。
而在Spring里,已经很好的集成了Quartz,简单到像配cron一样,在xml文件里面配一下时间就可以自动执行,不需要写一行代码。 <bean id="methodInvokingJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"><ref bean="financeDAO"/></property> <property name="targetMethod"><value>confirmOrder</value></property> </bean> <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="methodInvokingJobDetail"/> </property> <property name="cronExpression"> <value>0 0 6,12,20 * * ?</value> </property> </bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list><ref local="cronTrigger"/></list> </property> </bean>
上面这段配置文件规定了在早上6点和晚上8点执行financeDAO对象的confirmOrder()方法.
附:cronExpression配置说明
字段 |
|
允许值 |
|
允许的特殊字符 |
秒 |
| 0-59 |
| , - * / |
分 |
| 0-59 |
| , - * / |
小时 |
| 0-23 |
| , - * / |
日期 |
| 1-31 |
| , - * ? / L W C |
月份 |
| 1-12 或者 JAN-DEC |
| , - * / |
星期 |
| 1-7 或者 SUN-SAT |
| , - * ? / L C # |
年(可选) |
| 留空, 1970-2099 |
| , - * / | 
|