前言:由于我们本项目选用的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. Evacuation,题解

    题目: 题意: 有人,门(只有边上有,且1s只能出去一个人),和墙,每s人可移动一个格子,问多少秒所有人可以逃出,逃不出输出“impossible” 分析: 首先,我们先想着样一个问题,如果这个人在某 ...

  2. CF3D Least Cost Bracket Sequence 贪心

    Least Cost Bracket Sequence CodeForces - 3D 题目描述 This is yet another problem on regular bracket sequ ...

  3. 切忌一步到位,谈谈DevOps实施落地

    2020年6月19日,由云计算开源产业联盟指导,高效运维社区和 DevOps 时代社区联合举办的GNSEC 2020线上峰会圆满举办.BoCloud博云参加了本次峰会并分享了博云帮助客户实施DevOp ...

  4. 最新Spark入门篇

    一.Spark简介 1.什么是Spark Apache Spark是一种快速的集群计算技术,基于Hadoop MapReduce技术,扩展了MapReduce模型,主要特性是在内存中集群计算,速度更快 ...

  5. 安装archlinux

    arch安装步骤 archlinux官方安装wiki 1.分区and格式化分区      (分区用fdisk,格式化分区用mkfs) 2.挂载分区  (mount命令) 3.安装archlinux   ...

  6. python 装饰器(三):装饰器实例(一)

    示例 7-15 定义了一个装饰器,它会在每次调用被装饰的函数时计时,然后把经过的时间.传入的参数和调用的结果打印出来.示例 7-15 一个简单的装饰器,输出函数的运行时间 import time de ...

  7. hihoCoder 1041 国庆出游 最详细的解题报告

    题目来源:国庆出游 解题思路(下面是大神的写的): 把题目中的序列称作S,树称作T.那么对于S中的任意节点x,x的子孙节点如果在S出现的话,那么这个子孙节点的位置是有一定要求的:x的所有子孙节点在S中 ...

  8. 获取字符串指定字符的第n次出现位置

    create function uf_findx (@text nvarchar(max),@find_x varchar(200),@find_n int)returns intasbegin -- ...

  9. 题解 CF576D 【Flights for Regular Customers】

    对每条边来说,可以走这条边的限制解除是按\(d\)的顺序,所以先对每条边按\(d\)排序. 然后考虑每两条边之间的处理,用一个矩阵表示当前走\(d\)步是否可以从一个点到另一个点,称其为状态矩阵,用另 ...

  10. 001.Nginx简介

    一 Nginx概述 1.1 Nginx简介 Nginx是一个高性能的HTTP和反向代理web服务器,Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在B ...