spring框架使用任务调度quartz的例子-TriggerListener 篇

       有时候我们的任务(Job)需要再某些任务完成之后才能进行;例如从旧的数据库批量导数据的时候;需要现将被其他数据依赖的数据导入新的数据库;然后再进行关系的导入.。在这种情况下我们就可以使用Quartz的listener来做文章了。
        首先我们写一个主任务的类,命名为MainJob;她的作用是作为一系列任务的开始点。
MainJob.java

package  jobs;

import  org.apache.log4j.Logger;
import  org.quartz.JobExecutionContext;
import  org.quartz.JobExecutionException;
import  org.springframework.scheduling.quartz.QuartzJobBean;

public   class  MainJob  extends  QuartzJobBean  {
    
private  Logger logger = Logger.getLogger(getClass());
    @Override
    
protected void executeInternal(JobExecutionContext arg0)
            
throws JobExecutionException {
        
// TODO Auto-generated method stub
        logger.debug("Just say hi.");
    }


}


        然后我们新建另外一个任务(SecondJob)作为后续任务:
SecondJob.java

package  jobs;

import  org.apache.log4j.Logger;
import  org.quartz.JobExecutionContext;
import  org.quartz.JobExecutionException;
import  org.springframework.scheduling.quartz.QuartzJobBean;

public   class  SecondJob  extends  QuartzJobBean  {
    
private  Logger logger = Logger.getLogger(getClass());
    @Override
    
protected void executeInternal(JobExecutionContext arg0)
            
throws JobExecutionException {
        
// TODO Auto-generated method stub
        logger.debug("I'm the second job.");
    }


}

        创建一个TriggerListener,重写其triggerComplete方法,并且添加一些方便spring注入的属性和方法。
NextJobTriggerListener.java


        配置spring 的applicationContext.xml
applicationContext.xml

       开启服务器,输出

DEBUG  [ MainJob.executeInternal(14) ]   Just say hi.
DEBUG 
[ NextJobTriggerListener.triggerComplete(38) ]   inside scheduleJob .3
DEBUG [SecondJob.executeInternal(14)] I'm the second job.
DEBUG 
[ NextJobTriggerListener.triggerComplete(43) ]   oldJob == null:false
DEBUG 
[ NextJobTriggerListener.triggerComplete(44) ]   oldTrigger == null:false


        另外这里一个任务只绑定了一个简单的触发器,这样做是为了比较方便地可以检测到任务完成的情况;至于任务的具体内容就任由大家发挥了。写这篇文章希望能有人在其中获得启发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值