zoukankan      html  css  js  c++  java
  • 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”表示在每月的第三个周六

     
      
  • 相关阅读:
    安卓环境配置
    [转载]MinGW安装过程
    [转载]解决Android studio新建项目慢的问题
    [转载]图文详解YUV420数据格式
    视频专家之路【四】:ffmpeg简单实战之获取属性
    视频专家之路【三】:Vs开发环境的搭建
    视频专家之路【二】:ffmpeg工具的使用
    视频专家之路【一】:音视频入门知识基础
    二值信号量和互斥锁到底有什么区别?
    【python标准库模块五】Xml模块学习
  • 原文地址:https://www.cnblogs.com/snyv-nice/p/12606877.html
Copyright © 2011-2022 走看看