Quartz2.1.5定时器的使用

1.下载Quartz2.1.5的jar包
注意:不同版本的jar包有差异

2.官网文档

3.实现Job接口,这里编写的代码是你需要定时器为你做的工作
import java.util.Date;
import java.util.logging.Logger;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

/**
 * 执行工作
 * @author cjh
 *
 */
public class ExecuteJob implements Job{

private static final Logger logger = Logger.getLogger(ExecuteJob.class.getName());
/**
 * 实现job接口方法
 */
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
//调用描类
logger.info("定时器调用..."+new Date());
}

}

4.定时器,通过这个定时器去高度你的工作
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
 
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;
import static org.quartz.CronScheduleBuilder.cronSchedule;
 
/**
* 定时器
*
* @author cjh
*
*/
public class JobQuartz {
 
    /**
     * 工作
     *
     * @throws SchedulerException
     *
     * @throws SchedulerException
     */
    public static void task() throws SchedulerException {
 
        // 通过StdSchedulerFactory获得一个Scheduler实例
        SchedulerFactory sf = new StdSchedulerFactory();
        Scheduler sched = sf.getScheduler();
 
        // 使用org.quartz.JobBuilder类的newJob构造一个JobDetail对象
        JobDetail job = newJob(ExecuteJob.class).withIdentity("job1", "group1")
                 .build();
 
        // 使用org.quartz.TriggerBuilder类的newTrigger构造一个Trigger对象
        //(通过org.quartz.CronScheduleBuilder类的cronSchedule添加表达式)
        Trigger trigger = newTrigger()
               .withIdentity("trigger1", "group1")
               .withSchedule(cronSchedule("0 0/1 * * * ? *"))
               .forJob("job1","group1")
               .build();
 
        //调度器使用的job和trigger
        sched.scheduleJob(job, trigger);
 
        //启动调度器
        sched.start();
 
 
    }
 
    public static void main(String[] args) {
        try {
            JobQuartz.task();
        } catch (SchedulerException e) {
            e.printStackTrace();
        }
    }
}

5.如果是web程序需要初始化定时器,通过Listener初始化

import java.util.logging.Logger;
 
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
 
import org.quartz.SchedulerException;
 
 
/**
* 定时器监听器
* @author 3qinbo
*
*/
public class QuartzListener implements ServletContextListener {
 
    private static final Logger logger = Logger.getLogger(QuartzListener.class.getName());
 
    /**
     * 销毁
     */
    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
 
    }
 
    /**
     * 初始化
     */
    @Override
    public void contextInitialized(ServletContextEvent arg0) {
        logger.info("QuartzListener监听器初始化...");
        try {
            JobQuartz.task();
        } catch (SchedulerException e) {
            logger.warning("定时器监听器初始化出错...");
            e.printStackTrace();
        }
    }
 
}

6.在web.xml中注册监听器

    <!-- 定时器监听器 -->
    <listener>  
         <listener-class> com.egeniuss.jxibs.manage.io.timer.QuartzListener</listener-class>  
    </listener> 


7.本程序还需要添加其它的jar包请自行添加


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

河马开源

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值