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. 组装上面的三个核心组件,运行代码。

最新文章

  1. UWP开发笔记——嵌套式页面的实现
  2. Installing Erlang
  3. 用T-sql 实现Oracle Connect by 的功能
  4. 两台SQL Server数据同步解决方案
  5. Linux_2.6字符设备驱动实例
  6. 在Linux系详解Linux bash中的变量
  7. gtest以及测试小结
  8. SSH-Struts(两)—调节器(ActionServlet)
  9. JS高程5.引用类型(6)Array类型的位置方法,迭代方法,归并方法
  10. dip2px
  11. 【图解HTTP】笔记摘要
  12. Linux学习之Centos(三)------系统文件目录及含义详解
  13. Html5视频播放器-VideoJS+Audio标签实现视频,音频及字幕同步播放
  14. java多线程中注入Spring对象问题
  15. JetBrains 2017/2018全系列产品激活工具
  16. 洛谷P1710 地铁涨价 图论
  17. 使用nat123实现远程桌面
  18. 关于php的array_diff和array_diff_assoc的使用总结
  19. php PDO简介和操作
  20. strlen与sizeof区别

热门文章

  1. SpringBoot实战之SpringBoot自动配置原理
  2. [matlab] 3.矩阵
  3. NodeJS的优缺点
  4. 5、原生jdbc链接数据库实例-自动取款机
  5. 06 python初学 (列表内置方法)
  6. yaml的简单学习
  7. 快速搭建日志系统——ELK STACK
  8. Asp.net中web.config配置文件详解(二)
  9. WC 2018 题解
  10. WCF系列教程之WCF服务配置工具