• 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())); 
        }
    }
  • 相关阅读:
    asp.net六大对象
    python学习之类和实例的属性;装饰器@property
    第一次写博客,不知道写什么,就随便写一点咯
    Bash脚本编写初体验
    python学习之参数传递
    2016.9.30词法分析程序 108
    实验三 108
    10.28实验二 108
    词法分析实验报告 108
    组合数据类型练习,综合练习 108
  • 原文地址:https://www.cnblogs.com/duex/p/6602333.html
Copyright © 2020-2023  润新知