spring框架使用任务调度quartz的例子-TriggerListener篇 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-15
spring框架使用任务调度quartz的例子-TriggerListener篇时间:2011-08-26有时候我们的任务(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.javapackage 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."); }} spring框架使用任务调度quartz的例子-TriggerListener篇(2)时间:2011-08-26创建一个TriggerListener,重写其triggerComplete方法,并且添加一些方便spring注入的属性和方法。 NextJobTriggerListener.javapackage listeners;import org.apache.log4j.Logger;import org.quartz.JobDetail;import org.quartz.JobExecutionContext;import org.quartz.Scheduler;import org.quartz.Trigger;import org.quartz.listeners.TriggerListenerSupport;import org.springframework.scheduling.quartz.QuartzJobBean;import org.springframework.scheduling.quartz.SimpleTriggerBean;public class NextJobTriggerListener extends TriggerListenerSupport { private Logger logger = Logger.getLogger(getClass()); private String name; public String getName() { return this.name; } public void setName(String name) { this.name=name; } private SimpleTriggerBean nextTrigger; public void setNextTrigger(SimpleTriggerBean nextTrigger) { this.nextTrigger = nextTrigger; } @Override public void triggerComplete(Trigger trigger, JobExecutionContext context, int code) { try{ Scheduler schduler=context.getScheduler(); JobDetail nextJob=nextTrigger.getJobDetail(); //查找名称和即将加入的任务一样的任务 JobDetail oldJob=schduler.getJobDetail(nextJob.getName(),nextJob.getGroup()); //查找名称和即将加入的触发器一样的触发器 Trigger oldTrigger=schduler.getTrigger( nextTrigger.getName(),nextTrigger.getGroup()); if(oldJob==null&&oldTrigger==null)//同名的任务和触发器都不存在 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于spring框架使用任务调度quartz的例子-TriggerListener篇 - 编程入门网的所有评论