SpringBoot之Quartz基礎

前言:因爲咱們本項目選用的Springboot來整合Quartz,官方給咱們提供了啓動器因此很簡單。在之前的版本咱們想要使用Quartz須要引入的依賴以下:java

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

按以上的方式來使用Quartz的話,或須要咱們建立不少的配置類:Job的工廠類等。
可是如今咱們有了官方的啓動器,依賴以下:mysql

<dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

此時咱們不須要配置不少配置類,只須要在咱們的application.yaml文件中配置必要的信息就ok了。spring

建立springboot項目,並加入所需依賴

加入數據庫依賴

<!--mysql驅動依賴-->
<dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>
     <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <optional>true</optional>
</dependency>
<dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.16</version>
</dependency>
<!--mybatis-plus 快速開發-->
<dependency>
     <groupId>com.baomidou</groupId>
     <artifactId>mybatis-plus-boot-starter</artifactId>
     <version>3.2.0</version>
</dependency>

配置基本配置

spring:
  quartz:
    auto-startup: true
    properties:
      org:
        quartz:
          scheduler:
            instanceName: clusteredScheduler
            instanceId: AUTO
          jobStore:
            class: org.quartz.impl.jdbcjobstore.JobStoreCMT
            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
            tablePrefix: QRTZ_
            isClustered: true
            clusterCheckinInterval: 10000
            useProperties: false
          threadPool:
            class: org.quartz.simpl.SimpleThreadPool
            threadCount: 20
            threadPriority: 5
            threadsInheritContextClassLoaderOfInitializingThread: true
    job-store-type: jdbc
    wait-for-jobs-to-complete-on-shutdown: true
      datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/quartz?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC&allowPublicKeyRetrieval=true
    username: root
    password: root
    initialSize: 20
    minIdle: 5
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 30000
    testWhileIdle: true
    filters: stat,wall,sl4j
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

quartz涉及表說明

涉及表說明sql

qrtz_calendars :存儲quartz的calendar日曆信息.
qrtz_cron_triggers :存儲cron trigger,包括cron表達式和時區信息。
qrtz_fired_triggers :存儲與已觸發的trigger相關的狀態信息,以及相聯job的執行信息
qrtz_job_details :存儲每個已配置的job的詳細信息
qrtz_locks :存儲程序的非觀鎖的信息(假如使用了悲觀鎖)
qrtz_paused_trigger_grps :存儲已暫停的trigger組的信息
qrtz_scheduler_state :存儲少許的有關 scheduler的狀態信息,和別的 scheduler 實例         
qrtz_simple_triggers :存儲簡單的 trigger,包括重複次數,間隔,以及已觸的次數
qrtz_simprop_triggers
qrtz_triggers :存儲已配置的 trigger的信息

表屬性說明數據庫

qrtz_calendars表springboot

字段中文名 字段英文名 數據類型
計劃名稱 SCHED_NAME VARCHAR2(120)
觸發器名稱 CALENDAR_NAME VARCHAR2(200)
日曆 CALENDA BLO

qrtz_cron_triggers表mybatis

字段中文名 字段英文名 數據類型
計劃名稱 SCHED_NAME VARCHAR2(120)
定時任務類名 TRIGGER_NAME VARCHAR2(200)
任務分類 TRIGGER_GROUP VARCHAR2(200)
cron表達式 CRON_EXPRESSION VARCHAR2(120)
時間區域 TIME_ZONE_I VARCHAR2(80 )

qrtz_fired_triggers表併發

字段中文名 字段英文名 數據類型
計劃名稱 SCHED_NAME VARCHAR2(120)
組標識 ENTRY_ID VARCHAR2(95)
觸發器名稱 TRIGGER_NAME VARCHAR2(200)
觸發器組 TRIGGER_GROUP VARCHAR2(200)
當前實例的名稱 INSTANCE_NAME VARCHAR2(200)
當前執行時間 FIRED_TIME NUMBER(13)
計劃時間 SCHED_TIME NUMBER(13)
權重 PRIORITY NUMBER
狀態 STATE VARCHAR2(16)
做業名稱 JOB_NAME VARCHAR2(200)
做業組 JOB_GROUP VARCHAR2(200)
是否並行 IS_NONCONCURRENT VARCHAR2(1)
是否要求喚醒 REQUESTS_RECOVERY VARCHAR2(1)

qrtz_job_details表app

字段中文名 字段英文名 數據類型
調度名稱 SCHED_NAME VARCHAR2(120)
job的名字 JOB_NAME VARCHAR2(200)
job的所屬組的名 JOB_GROUP VARCHAR2(200)
相關介紹 DESCRIPTION VARCHAR2(250)
job實現類的徹底 JOB_CLASS_NAME VARCHAR2(250)
是否持久化 IS_DURABLE VARCHAR2(1)
是否併發 IS_NONCONCURRENT VARCHAR2(1)
是否更新數據 IS_UPDATE_DATA VARCHAR2(1)
是否接受恢復執行 REQUESTS_RECOVERY VARCHAR2(1)
存放持久job對象 JOB_DATA BLOB

qrtz_locks表spring-boot

字段中文名 字段英文名 數據類型
計劃名稱 SCHED_NAME VARCHAR2(120)
鎖名 LOCK_NAM VARCHAR2(40)

qrtz_paused_trigger_grps表

字段中文名 字段英文名 數據類型
計劃名稱 SCHED_NAME VARCHAR2(120)
觸發器組 TRIGGER_GROUP VARCHAR2(200)

qrtz_scheduler_state表

字段中文名 字段英文名 數據類型
計劃名稱 SCHED_NAME VARCHAR2(120)
實例名稱 INSTANCE_NAME VARCHAR2(200)
最後的檢查時間 LAST_CHECKIN_TIME NUMBER(13)
檢查間隔 CHECKIN_INTERVAL NUMBER(13)

qrtz_simple_triggers表

字段中文名 字段英文名 數據類型
計劃名稱 SCHED_NAME VARCHAR2(120)
觸發器名稱 TRIGGER_NAME VARCHAR2(200)
觸發器組 TRIGGER_GROUP VARCHAR2(200)
重複次數 REPEAT_COUNT NUMBER(7)
觸發次數 REPEAT_INTERVAL NUMBER(12)
重複間隔 TIMES_TRIGGERED NUMBER(10)

qrtz_triggers表

字段中文名 字段英文名 數據類型
計劃名稱 SCHED_NAME VARCHAR2(120)
觸發器名稱 TRIGGER_NAME VARCHAR2(200)
觸發器組 TRIGGER_GROUP VARCHAR2(200)
做業名稱 JOB_NAME VARCHAR2(200)
做業組 JOB_GROUP VARCHAR2(200)
描述 DESCRIPTION VARCHAR2(250)
下次執行時間 NEXT_FIRE_TIME NUMBER(13)
前一次執行時間 PREV_FIRE_TIME NUMBER(13)
優先權 PRIORITY NUMBER
觸發器狀態 TRIGGER_STATE VARCHAR2(16)
觸發器類型 TRIGGER_TYPE VARCHAR2(8)
開始時間 START_TIME NUMBER(13)
結束時間 END_TIME NUMBER(13)
日曆名稱 CALENDAR_NAME VARCHAR2(200)
失敗次數 MISFIRE_INSTR NUMBER
做業數據 JOB_DATA BLOB

相關文章
相關標籤/搜索