Quartz框架学习(1)—核心层次结构

时间:2023-03-08 20:11:10

Quartz框架学习

  • Quartz(任务调度)框架的核心组件:
    1. job:任务。即任务调度行为中所要调度的对象。
    2. trigger:触发器。是什么促使了一个任务的调度?当然是时间。这也算事件驱动类型程序。
      1. 每隔多久触发一次(含时间单位);
      2. 重复多久或累计重复多少次;
    3. sheduler:谁来安排这件事。
      package quartz;
      
      import org.quartz.Job;
      import org.quartz.JobBuilder;
      import org.quartz.JobDetail;
      import org.quartz.JobExecutionContext;
      import org.quartz.JobExecutionException;
      import org.quartz.Scheduler;
      import org.quartz.SchedulerException;
      import org.quartz.SimpleScheduleBuilder;
      import org.quartz.Trigger;
      import org.quartz.TriggerBuilder;
      import org.quartz.impl.StdSchedulerFactory; public class FirstQuartzDemo implements Job{ @Override
      public void execute(JobExecutionContext context) throws JobExecutionException {
      System.out.println("FirstQuartzDemo");
      } public static void main(String[] args) throws SchedulerException {
      /**
      * Step1:建立Job
      */
      JobDetail jd = JobBuilder.newJob(FirstQuartzDemo.class)
      .withDescription("my first quartz demo")
      .withIdentity("first").build(); /**
      * Step2:建立trigger
      */
      Trigger trigger = TriggerBuilder.newTrigger()
      .withSchedule(
      SimpleScheduleBuilder
      .simpleSchedule()
      .withIntervalInSeconds(2)
      .repeatForever())
      .build(); /**
      * Step3:获取Scheduler
      */
      StdSchedulerFactory std = new StdSchedulerFactory();
      Scheduler schdl = std.getScheduler(); /**
      * Step4:组装构件,实现逻辑
      */
      schdl.scheduleJob(jd,trigger);
      schdl.startDelayed(5); }
      }
  • 开发步骤:
    1. 创建Job,被执行的内容。必须有一个实现了Job接口的类作为参数,实现该接口就是为了后面调用其实现的execute()方法。和线程的run方法类似(恰巧,线程实现Runnable接口,也叫任务task);
    2. 创建trigger。时间触发了事情的执行;
    3. 创建sheduler。一定要有谁来安排这么一个事情的执行;
    4. 组装上面的三个核心组件,运行代码。