springBoot 整合Quartz框架

    

一:Quartz框架

  什么是Quartz:Quartz 是 OpenSymphony 开源组织的一个 Java 开源项目, 在 2009 被 Terracotta 收购

  Quartz是做什么的:在某一个规定的时间做某件事情,Quartz就是给一个触发条件的定义,它就会负责到了时间点(满足了触发事件的条件)触发相应的任务  

  举例说Quartz可以做的事情(生活中的案例):

     1、每年的生日

     2、每个月的花呗还款

     3、每间隔一个小时,备份自己的学习笔记

  Quartz的特性:

    1、强大的调度功能,例如支持多样的调度方式

    2、灵活的应用方式,例如支持任务和调度的多种组合方式

    3、分布式和集群功能,Terracotta 在收购后,对原来功能作了进一步提升
  Quartz的主要概念
    1、调度器(Scheduler):Quartz的核心就是调度器,调度器负责管理Quartz应用,运行时环境调度器不是靠自己做所有的工作,而是依赖框架内一些非常重要的部件。为确保可伸缩性,Quartz 采用了基于多线程的架构。启动时,框架初始化一套 worker 线程,这套线程被调度器用来执行预定的作业。这就是 Quartz 怎样能并发运行多个作业的原理。Quartz 依赖一套松耦合的线程池管理部件来管理线程环境。
    2、任务(Job):就是我们自己编写的业务逻辑,交给 quartz 帮我们执行。
    3、触发器(Trigger):什么时候开始执行,什么时候结束执行,触发该事件的条件
  Quartz的基本元素之间的关系如下图所示:
      
  SpringBoot整合Quartz框架:
    基本流程:
      1、首先创建一个maven项目
      2、导入基础依赖和Quartz的依赖
       

       3、创建一个Quartz的配置类 使用@Configuration注解,这个注解就相当于xml中的标签,还会用到@bean注解,该相当于标签,通常二者结合使用

        

      4、编写一个调度器  

        

         调度器中的方法:

          1、fixedDelay 在上一个任务结束之后N秒触发 单位为毫秒

          

          2、fixedRate  在上一个任务开始之后N秒开始 单位为毫秒

          

          3、cron = 复杂的周期调度方式  等号后面是一个表达式  cron=“表达式” 表达式格式:表达式:[秒] [分] [时] [日] [月] [周] [年]  年一般不设置

            

          cron表达式中的通配符: 生成通配符的网站:https://qqe2.com/cron

           1、*表示所有值。 例如:在分的字段上设置 *,表示每一分钟都会触发。

            2、? 表示不指定值,不需要关心当前设置这个字段的值

            3、- 表示区间。例如 在小时上设置 “10-12”,表示 10,11,12点都会触发

            4、, 表示指定多个值,例如在周字段上设置 “MON,WED,FRI” 表示周一,周三和周五触发

            5、/ 用于递增触发。0/5 每隔5秒

               6、L 表示最后的意思  W 表示离指定日期的最近那个工作日(周一至周五)

            7、# 序号(表示每月的第几个周几),例如在周字段上设置”6#3”表示在每月的第三个周六

 
  

猜你喜欢

转载自www.cnblogs.com/snyv-nice/p/12606877.html