加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Spring联姻Quartz达成作业调度

发布时间:2021-11-22 13:29:42 所属栏目:教程 来源:互联网
导读:这里用的是Spring-2.x和Quartz-1.x 里面涉及到的RecFileQuartz、MessageSendQuartz等类,都是普通的Java类 其中targetMethod属性值就是RecFileQuartz、MessageSendQuartz类中的方法 bean id=recfileQuartz class=com.ecpay.cus.quartz.RecFileQuartz propert

这里用的是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定制调度执行了该方法,本行打印的日志就是该方法的第一行代码");  
    }  
}  

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读