0
点赞
收藏
分享

微信扫一扫

使用Listener实现Quartz任务调度的范例



先前写过一篇使用Spring实现Quartz任务调度的范例《使用Spring实现Quartz任务调度的范例》

要是工程里不能使用spring的话,这种做法就不合适了,这种情况下可以使用Listener来实现Quartz任务调度。

QuartzServiceListener.java代码如下



package com.demo; 


import javax.servlet.ServletContextEvent; 

import javax.servlet.ServletContextListener; 


import org.apache.log4j.Logger; 

import org.quartz.JobDetail; 

import org.quartz.Scheduler; 

import org.quartz.SchedulerException; 

import org.quartz.SchedulerFactory; 

import org.quartz.Trigger; 

import org.quartz.TriggerUtils; 


public class QuartzServiceListener implements ServletContextListener { 

 private static Logger log = Logger.getLogger(QuartzServiceListener.class); 

 private static SchedulerFactory schedulerFactory = new org.quartz.impl.StdSchedulerFactory(); 

 private static Scheduler scheduler; 

 @Override 

 public void contextDestroyed(ServletContextEvent event) { 

 try { 

 scheduler.shutdown(); 

 log.info("停止调度任务"); 

 } catch (SchedulerException e) { 

 e.printStackTrace(); 

 log.error(e.getMessage(), e); 

 } 

 } 


 @Override 

 public void contextInitialized(ServletContextEvent event) { 

 try{ 

 scheduler = schedulerFactory.getScheduler(); 

 JobDetail jobDetail = new JobDetail("name", Scheduler.DEFAULT_GROUP, MyJob.class); 

 Trigger trigger = TriggerUtils.makeDailyTrigger("[每日自动分析调度任务]", 18, 07); 

 scheduler.scheduleJob(jobDetail, trigger); 

 scheduler.start(); 

 log.info(new StringBuilder("启动调度任务").append(trigger.getNextFireTime())); 

 }catch(Exception e){ 

 e.printStackTrace(); 

 log.error(e.getMessage(), e); 

 } 

 } 

}



MyJob.java代码如下

package com.demo 


import org.apache.log4j.Logger; 


public class MyJob { 

 private static Logger log = Logger.getLogger(MyJob.class); 

 /** 

 * 定时执行的任务 

 */ 

 public void execute() { 

 log.info("准备执行调度"); 

 try{ 


 }finally{ 

 log.info("调度执行完成"); 

 } 

 } 

}




最后别忘了在web.xml里加入这个QuartzServiceListener
web.xml


<listener> 

 <listener-class>com.gdw.scheduler.QuartzServiceListener</listener-class> 

 </listener>

举报

相关推荐

0 条评论