quartz在web.xml的配置

Posted 杨过

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了quartz在web.xml的配置相关的知识,希望对你有一定的参考价值。

第一步:下载所需的Jar包 
commons-beanutils.ja、commons-collections.jar、commons-logging.jar、commons-digester.jar、quartz.jar包 
第二步:在web.xml下配置监听 
在web.xml下配置监听的目的是为了项目编译的时候就自动运行监听下配置的业务类。

<!--监听(作用就是启动项目的时候就会运行这个类,这个类需要实现ServletContextListener接口)-->
<listener>     
       <listener-class>     
            com.qt.quartz.QuartzMain   
       </listener-class>     
</listener>

 

第三步:编写com.qt.quartz.QuartzMain类 
这个类只是作为启动类,调用QuartzLoad类的2个方法,因为这个类是静态的,所以可以用名称直接点出方法名称。

package com.qt.quartz;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class QuartzMain implements ServletContextListener {
    // 服务器启动时执行该事件
    @Override
    public void contextInitialized(ServletContextEvent arg0) {
        try {
            QuartzLoad.run();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    // 服务器停止时执行该事件
    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
        try {
            QuartzLoad.stop();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

第四步:编写com.qt.quartz.QuartzLoad类 
这个类里面有2个方法,一个是启动quartz的方法,一个是关闭方法,这个类里面可以定制每隔多少时间循环调用业务类一次。

package com.qt.quartz;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.impl.StdSchedulerFactory;

public class QuartzLoad {
    private static Scheduler sched; 
    public static void run() throws Exception { 
        //创建LzstoneTimeTask的定时任务 
//三个参数,第一个是自己取得名称、第二个是固定的、第三个是业务类
        JobDetail jobDetail = new JobDetail("lzstoneJob",sched.DEFAULT_GROUP,QuartzJob.class); 
 //三个参数,第一个是自己取得名称、第二个是触发器组名称、第三个是自定义时间
        CronTrigger trigger = new CronTrigger("lzstoneTrigger","lzstone","0/50 * * * * ?");  
        sched = new StdSchedulerFactory().getScheduler();  
        sched.scheduleJob(jobDetail,trigger);  
        sched.start();
    }
    //停止  
    public static void stop() throws Exception{  
           sched.shutdown();  
     }  
}

序号 说明 是否必填 允许填写的值 允许的通配符 
1 秒 是 0-59 , - * / 
2 分 是 0-59 , - * / 
3 小时 是 0-23 , - * / 
4 日 是 1-31 , - * ? / L W 
5 月 是 1-12 or JAN-DEC , - * / 
6 周 是 1-7 or SUN-SAT , - * ? / L # 
7 年 否 empty 或 1970-2099 , - * /

第五步:编写QuartzJob.class类,自己的业务处理类

package com.qt.quartz;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class QuartzJob implements Job{
    @Override
    public void execute(JobExecutionContext arg0) throws JobExecutionException {
         // TODO Auto-generated method stub
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); 
         System.out.println("时间表:"+sdf.format(new Date())); 
    }
}












以上是关于quartz在web.xml的配置的主要内容,如果未能解决你的问题,请参考以下文章

spring Quartz多个定时任务的配置

转:web.xml 中的listener filterservlet 加载顺序及其详解

Quartz 框架的应用

Choose unique values for the 'webAppRootKey' context-param in your web.xml files! 错误的解决(代码片段

web.xml 中的listener filterservlet 加载顺序及其详解

spring 集成quartz 部署在tomcat里 任务每次会执行两遍