前言:由于我们本项目选用的Springboot来整合Quartz,官方给我们提供了启动器所以很简单。在以前的版本我们想要使用Quartz需要引入的依赖如下:

<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的工厂类等。

但是现在我们有了官方的启动器,依赖如下:

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

此时我们不需要配置很多配置类,只需要在我们的application.yaml文件中配置必要的信息就ok了。

创建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涉及表说明

涉及表说明

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表

字段中文名 字段英文名 数据类型
计划名称 SCHED_NAME VARCHAR2(120)
触发器名称 CALENDAR_NAME VARCHAR2(200)
日历 CALENDA BLO

qrtz_cron_triggers表

字段中文名 字段英文名 数据类型
计划名称 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表

字段中文名 字段英文名 数据类型
调度名称 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表

字段中文名 字段英文名 数据类型
计划名称 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

SpringBoot之Quartz基础的更多相关文章

  1. SpringBoot之Quartz实战

    说明:由于上篇文章我们已经讨论过springboot整合Quartz及相关配置,本次我们只说明Qrtz的增.删.改.启动.停止相关api的使用,其中涉及的其他技术,如:mybatisplus等技术以后 ...

  2. Springboot集成Quartz

    之前学习过spring的定时任务 :https://www.cnblogs.com/slimshady/p/10112515.html 本文主要学习记录下springboot使用quartz 1.   ...

  3. Spring-Boot之Redis基础

    Spring-Boot之Redis基础 准备 Redis下载地址:github.com/MSOpenTech/redis/releases Redis数据库的默认端口号是 6379 开启Redis服务 ...

  4. SpringBoot整合Quartz定时任务 系统job Spring Boot教程 调度任务

    原文地址:https://www.cnblogs.com/allalongx/p/8477368.html 构建工程 创建一个Springboot工程,在它的程序入口加上@EnableScheduli ...

  5. springboot和quartz整合实现动态定时任务(持久化单节点)

    Quartz是一个完全由java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制,它支持定时任务持久化到数据库,从而避免了重启服务器时任务丢失,支持分布式多节点,大大的 ...

  6. SpringBoot整合Quartz作为调度中心完整实用例子

    因为想要做一个类似于调度中心的东西,定时执行一些Job(通常是一些自定义程序或者可执行的jar包),搭了一个例子,总结了前辈们的相关经验和自己的一些理解,如有雷同或不当之处,望各位大佬见谅和帮忙指正. ...

  7. SpringBoot整合Quartz定时任务

    记录一个SpringBoot 整合 Quartz 的Demo实例 POM.XML文件 <!-- 定时器任务 quartz需要导入的坐标 --> <dependency> < ...

  8. Quartz基础调度框架-第二篇服务

    很多应用场景Quartz运行于Windows服务 Conf 在这个基本结构里 是用来存放配置  和上一篇 控制台运行的一样的结构 jobs.xml 的配置清单 <!-- 任务配置--> & ...

  9. Quartz基础调度框架-第一篇控制台

    Quartz基础调度框架 Quartz核心的概念:scheduler任务调度.Job任务.Trigger触发器.JobDetail任务细节 结构 Conf 在这个基本结构里 是用来存放配置 publi ...

随机推荐

  1. The Shortest Statement,题解

    题目链接 分析: 还是很明白的题意,直接分析问题,首先,这一题真的是给spfa用武之地,m比n大不超过20,但是这并不能使暴力不t,我们考虑一下如何改进一下,我们这样想,这个图只比它的生成树多最多21 ...

  2. CBV源码与APIView源码解析

    一.CBV源码解析 在我们写cbv的时候在url中和fbv的区别就是是否调用了as_view()方法,所以关键入手点就是这个方法 @classonlymethod # 这是类的绑定方法,这个cls是我 ...

  3. JVM 专题十八:垃圾回收(二)垃圾回收相关算法

    1. 标记阶段 1.1 引用计数算法 1.1.1 对象存活判断 在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象.只有被标记为己 ...

  4. Alink漫谈(十一) :线性回归 之 L-BFGS优化

    Alink漫谈(十一) :线性回归 之 L-BFGS优化 目录 Alink漫谈(十一) :线性回归 之 L-BFGS优化 0x00 摘要 0x01 回顾 1.1 优化基本思路 1.2 各类优化方法 0 ...

  5. day2:Number,tuple,str,list,set,dict

    # ### Number ( int float bool complex) 1.int 整型 (正整数 0 负整数)intvar = 1print(intvar) # type 获取值的类型res ...

  6. 小白从零开始阿里云部署react项目+node服务接口(一:阿里云服务器)

    准备阿里云服务器,并安装系统 如果没用自己服务器可以购买一个 https://www.aliyun.com/minisite/goods?userCode=x7i5glgc 初级购买一个1核2G的主机 ...

  7. Java File类基础解析 1

    Java File类基础解析 1 File类的构造方法 public File(String pathname) :通过给定的路径名字符转换为抽象路径名来创建新的File实例 String path ...

  8. Burp Suite Decoder Module - 解码模块

    官方参考链接:https://portswigger.net/burp/documentation/desktop/tools/decoder 该模块主要进行编码和解码,支持编码方式有:Plain,U ...

  9. 围绕一个 volatile 关键字居然可以问出来 16 个问题

    对于 Java 每次面试就会想到多线程,多线程问题基本跑不了要问一下 volalite 关键字,可是我万万没想到居然一个 volatile 关键字可以连续问题出来 16 个问题!看下你能回答出来几个? ...

  10. 技术小菜比入坑 LinkedList,i 了 i 了

    先看再点赞,给自己一点思考的时间,思考过后请毫不犹豫微信搜索[沉默王二],关注这个长发飘飘却靠才华苟且的程序员.本文 GitHub github.com/itwanger 已收录,里面还有技术大佬整理 ...