在web.xml下配置的计时器(Quartz)

第一步:下载所需的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())); 
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值