这里用的是Spring-2.x和Quartz-1.x里面涉及到的RecFileQuartz、MessageSendQuartz等类,都是普通的Java类其中<targetMethod>属性值就是RecFileQuartz、MessageSendQuartz类中的方法
- <bean id="recfileQuartz" class="com.ecpay.cus.quartz.RecFileQuartz">
- <property name="pbcDao" ref="pbcDao" />
- <property name="nauDao" ref="nauDao" />
- </bean>
- <bean id="messageSendQuartz" class="com.ecpay.cus.quartz.MessageSendQuartz">
- <property name="jfbManager" ref="jfbManager"/>
- </bean>
-
-
- <!-- Spring作业调度 -->
- <!-- 0 0/10 9-23 * * ? : 每天09:00-23:00之间每10分钟触发一次 -->
- <!-- 0 */2 * * * ? : 02分钟触发一次 -->
- <!-- 0 30 0 * * ? : 每天00:30触发 -->
- <!-- 0 0 1 * * ? : 每天01:00触发 -->
- <!-- 0 0 0 1 * ? : 每月01号零点触发 -->
- <!-- autoStartup="true":SchedulerFactoryBean在初始化后是否马上启动Scheduler,默认为true。若设置为false,则需手工启动Scheduler -->
- <!-- concurrent="false":false为不允许任务并发执行,即第二个job将不会在第一个job完成之前开始执行.默认情况下,jobs是在并行的方式下运行的 -->
- <bean id="quartzJobFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
- <property name="triggers">
- <list>
- <ref bean="genCustomizeRelationTrigger"/>
- <ref bean="sendInfoTrigger"/>
- </list>
- </property>
- <property name="autoStartup" value="true"/>
- </bean>
-
- <bean id="genCustomizeRelationTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
- <property name="jobDetail" ref="genCustomizeRelationJobDetail" />
- <property name="cronExpression" value="0 30 0 * * ?"/>
- </bean>
- <bean id="genCustomizeRelationJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
- <property name="targetObject" ref="recfileQuartz" />
- <property name="targetMethod" value="genRecFileRelation" />
- <property name="concurrent" value="false" />
- </bean>
-
- <bean id="sendInfoTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
- <property name="jobDetail" ref="sendInfoDetail"/>
- <property name="cronExpression" value="0 */10 * * * ?" />
- </bean>
- <bean id="sendInfoDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
- <property name="targetObject" ref="messageSendQuartz" />
- <property name="targetMethod" value="executeSend" />
- <property name="concurrent" value="false" />
- </bean>
下面是MessageSendQuartz.java
- package com.ecpay.cus.quartz;
-
- import com.ecpay.cus.service.JFBBusinessManager;
-
- /**
- * 信息推送
- * @author 玄玉<http://blog.csdn.net/jadyer>
- */
- public class MessageSendQuartz {
- private JFBBusinessManager jfbManager;
- public void setJfbManager(JFBBusinessManager jfbManager) {
- this.jfbManager = jfbManager;
- }
-
- /**
- * 定时执行的方法
- */
- public void executeSend() throws Exception {
- System.out.println("恭喜您:信息推送任务启动了");
- }
- }
下面是RecFileQuartz.java
- package com.ecpay.cus.quartz;
-
- import org.springframework.transaction.annotation.Transactional;
-
- import com.ecpay.cus.dao.NotActiveUserDAO;
- import com.ecpay.cus.dao.PayBusinessCustomizeDAO;
-
- /**
- * 业务定制对账文件之作业调度类
- * @author 玄玉<http://blog.csdn.net/jadyer>
- * @create May 4, 2012 12:50:28 PM
- */
- @Transactional
- public class RecFileQuartz {
- private PayBusinessCustomizeDAO pbcDao;
- private NotActiveUserDAO nauDao;
- public void setNauDao(NotActiveUserDAO nauDao) {
- this.nauDao = nauDao;
- }
- public void setPbcDao(PayBusinessCustomizeDAO pbcDao) {
- this.pbcDao = pbcDao;
- }
-
- /**
- * 生成定制关系到数据库
- */
- @Transactional
- public void genRecFileRelation() {
- System.out.println("恭喜您:Spring定制调度执行了该方法,本行打印的日志就是该方法的第一行代码");
- }
- }