SpringBoot之Quartz基础
前言:由于我们本项目选用的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基础的更多相关文章
- SpringBoot之Quartz实战
说明:由于上篇文章我们已经讨论过springboot整合Quartz及相关配置,本次我们只说明Qrtz的增.删.改.启动.停止相关api的使用,其中涉及的其他技术,如:mybatisplus等技术以后 ...
- Springboot集成Quartz
之前学习过spring的定时任务 :https://www.cnblogs.com/slimshady/p/10112515.html 本文主要学习记录下springboot使用quartz 1. ...
- Spring-Boot之Redis基础
Spring-Boot之Redis基础 准备 Redis下载地址:github.com/MSOpenTech/redis/releases Redis数据库的默认端口号是 6379 开启Redis服务 ...
- SpringBoot整合Quartz定时任务 系统job Spring Boot教程 调度任务
原文地址:https://www.cnblogs.com/allalongx/p/8477368.html 构建工程 创建一个Springboot工程,在它的程序入口加上@EnableScheduli ...
- springboot和quartz整合实现动态定时任务(持久化单节点)
Quartz是一个完全由java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制,它支持定时任务持久化到数据库,从而避免了重启服务器时任务丢失,支持分布式多节点,大大的 ...
- SpringBoot整合Quartz作为调度中心完整实用例子
因为想要做一个类似于调度中心的东西,定时执行一些Job(通常是一些自定义程序或者可执行的jar包),搭了一个例子,总结了前辈们的相关经验和自己的一些理解,如有雷同或不当之处,望各位大佬见谅和帮忙指正. ...
- SpringBoot整合Quartz定时任务
记录一个SpringBoot 整合 Quartz 的Demo实例 POM.XML文件 <!-- 定时器任务 quartz需要导入的坐标 --> <dependency> < ...
- Quartz基础调度框架-第二篇服务
很多应用场景Quartz运行于Windows服务 Conf 在这个基本结构里 是用来存放配置 和上一篇 控制台运行的一样的结构 jobs.xml 的配置清单 <!-- 任务配置--> & ...
- Quartz基础调度框架-第一篇控制台
Quartz基础调度框架 Quartz核心的概念:scheduler任务调度.Job任务.Trigger触发器.JobDetail任务细节 结构 Conf 在这个基本结构里 是用来存放配置 publi ...
随机推荐
- Subset POJ - 3977(折半枚举+二分查找)
题目描述 Given a list of N integers with absolute values no larger than 10 15, find a non empty subset o ...
- Webapi管理和性能测试工具WebBenchmark
WebBenchmark是一款基于开源通讯组件Beetlex扩展的Webapi管理和性能测试工具,在传统工具中一般管理工具缺乏性能压测能力或有性能测试的缺少管理功能:WebBenchmark的设计目标 ...
- centos7篇---开启防火墙和特定端口
开启防火墙服务 以前为了方便,把防火墙都关闭了,因为现在项目都比较重要,害怕受到攻击,所以为了安全性,现在需要将防火墙开启,接下来介绍一下步骤.1, 首先查看防火墙状态: firewall-cmd - ...
- 源码剖析@ApiImplicitParam对@RequestParam的required属性的侵入性
问题起源 使用SpringCloud构建项目时,使用Swagger生成相应的接口文档是推荐的选项,Swagger能够提供页面访问,直接在网页上调试后端系统的接口, 非常方便.最近却遇到了一个有点困惑的 ...
- ArrayList源码分析-jdk11 (18.9)
目录 1.概述 2.源码分析 2.1参数 2.2 构造方法 2.2.1 无参构造方法 2.2.2 构造空的具有特定初始容量值方法 2.2.3构造一个包含指定集合元素的列表,按照集合的迭代器返回它们的顺 ...
- J.U.C体系进阶(一):juc-executors 执行器框架
Java - J.U.C体系进阶 作者:Kerwin 邮箱:806857264@qq.com 说到做到,就是我的忍道! 主要内容: juc-executors 执行器框架 juc-locks 锁框架 ...
- Java常用API(Arrays类)
Java常用API(Arrays类) 什么是Arrays类? java.util.Arrays 此类包含用来操作数组的各种方法,比如排序和搜索等.其所有方法均为静态方法,调用起来 非常简单. 这里我们 ...
- Burp Suite Intruder Module - 攻击模块
参考链接:https://portswigger.net/burp/documentation/desktop/tools/intruder/using 主要思路:在Intruder模块下设定Targ ...
- PHP中使用 TUS 协议来实现可恢复文件上传
曾经尝试过用PHP上传大文件吗?想知道您是否可以从上次中断的地方继续上传,而不会在遇到任何中断的情况下再次重新上传整个数据?如果您觉得这个场景很熟悉,请接着往下阅读. 文件上传是我们几乎所有现代Web ...
- 10种常见OOM分析——手把手教你写bug
点赞+收藏 就学会系列,文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱,笔记自取 在<Java虚拟机规范>的规定里,除了程序计数器外,虚拟机内存的其他几个运 ...