美文网首页
【极简教程】Quartz的基本使用方法

【极简教程】Quartz的基本使用方法

作者: 花生无翼 | 来源:发表于2019-11-07 12:42 被阅读0次

    定时任务实现定时任务的方法有很多种,Quartz是一个比较常用的选择,下面就说明下
    如何使用Quartz。

    1.Maven

    工程中的pom.xml引入quartz

    <dependency>
          <groupId>org.quartz-scheduler</groupId>
          <artifactId>quartz</artifactId>
          <version>2.1.3</version>
     </dependency>
    

    2.创建任务

    首先创建一个任务,具体代码如下:

    package com.ssm.simple.task;
    
    import org.quartz.Job;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    
    import java.time.LocalTime;
    import java.util.concurrent.TimeUnit;
    
    /**
     * 定时任务
     *
     * @Author peanutnowing
     * @Date 2019/4/26
     */
    public class QuartzDemoTask implements Job{
        @Override
        public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
            System.out.println("demoTask start...");
        }
    }
    
    

    QuartzDemoTask这个任务类要实现Job接口,在execute方法中实现任务具体内容,这里面的内容是打印一句话。

    3.设定调度策略

    具体代码如下:

     package com.ssm.simple.task;
    
    import org.quartz.*;
    import org.quartz.impl.StdSchedulerFactory;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    /**
     * 定时任务
     *
     * @Author peanutnowing
     * @Date 2019/4/26
     */
    public class QuartzDemoTaskScheduler {
        private static final Logger logger = LoggerFactory.getLogger(QuartzDemoTaskScheduler.class);
    
        public static void startTask() {
            //通过schedulerFactory获取一个调度器
            SchedulerFactory schedulerfactory = new StdSchedulerFactory();
            Scheduler scheduler=null;
            try{
                // 通过schedulerFactory获取一个调度器
                scheduler = schedulerfactory.getScheduler();
                // 创建jobDetail实例,绑定Job实现类,指明job的名称,所在组的名称,以及绑定job类
                JobDetail demoJob = JobBuilder.newJob(QuartzDemoTask.class).withIdentity("demoJob", "demoGroup").build();
                //  corn表达式
                Trigger demoTrigger= TriggerBuilder.newTrigger().withIdentity("demoJob", "demoTrigger")
                        .withSchedule(CronScheduleBuilder.cronSchedule("*/5 * * * * ?"))//每5秒执行1次
                        .startNow().build();
    
                // 把作业和触发器注册到任务调度中
                scheduler.scheduleJob(demoJob, demoTrigger);
                // 启动调度
                scheduler.start();
            }catch(SchedulerException e){
                logger.error("QuartzDemoTaskScheduler run task error:{}",e);
            }catch(Exception e){
                logger.error("exception:{}",e);
            }
        }
    
        public static void main(String[] args) {
            QuartzDemoTaskScheduler.startTask();
        }
    }
    一些具体内容写在代码注释中。
    

    4.总结

    以上就是Quartz的基本使用方法,欢迎大家与我沟通讨论。

    相关文章

      网友评论

          本文标题:【极简教程】Quartz的基本使用方法

          本文链接:https://www.haomeiwen.com/subject/dvipvctx.html