quartz 2.x
Java 中最流行的定时任务框架. 主要介绍quartz 的基本用法, 常用API, 与Spring boot 整合使用最佳实践
Java 程序源
微信公众号: Java 程序源,敬请关注!
展开
-
01.Quartz 环境搭建-基于内存
quartz 是java 领域中应用最广泛的一个定时任务调度框架, 支持两种存储方式:基于内存存储和基于数据库存储. 同城在企业开发中都是结合spring使用, 直接按指定规则配置即可. 但是笔者认为, 要想对quartz 有个相对比较深入的了解, 还是应该搭建一个JavaSE 环境来进行学习和测试. quartz 的开发流程:创建调度器工厂加载配置文件(如果使用默认配置文件名, 则可以省略...原创 2019-08-27 16:18:31 · 3797 阅读 · 0 评论 -
02.Quartz 环境搭建-基于jdbc-mysql
笔者前面介绍了quartz 基于内存的环境搭建, 接下来在前面的基础上, 将项目修改为基于jdbc存储的quartz环境. quartz 2.x 共有11张表, 需要事先导入数据库中. quartz 针对常见的数据库均提供了初始化脚本, 位于docs/dbTables目录中.1. quartz 相关表quartz 默认表前缀为QRTZ_, quartz 支持修改表前缀. 但是由于quartz默...原创 2019-08-27 16:18:27 · 4183 阅读 · 0 评论 -
03.Quartz 定时任务-Job 和 JobDetail
Quartz 中自定义Job实现方式很简单, 只需要实现Job接口并实现其execute方法即可. 将自定义job添加到调度列表时, 需将Job封装称JobDetail, 并设置job的标识符等信息. 需要特别注意的是, 当定时任务触发时, 调度器Scheduler 会获取JobDetail中关联的Job类信息, 并创建Job实例, 然后执行其execute方法. 当execute 方法执行完后,...原创 2019-08-27 16:18:23 · 3990 阅读 · 0 评论 -
04.Quartz 触发器
Quartz 触发器分为两种SimpleTrigger 和 CronTrigger, SimplerTrigger 适用于以固定时间间隔执行重复N次或延时执行一次的定时任务, CronTrigger 适用于按照日历规则来执行定时任务, 如每月最后一天触发一次, 每周一触发一次等.1. 核心APIquartz 提供了一组API, 用于快捷地创建SimpleTrigger或CronTrigger:...原创 2019-08-27 16:18:19 · 4290 阅读 · 0 评论 -
05.Quartz cron 表达式详解
1. 简介cron 是已经存在很长时间的Unix的一个工具, 它的功能很强大, 也得到了时间的证明. Quartz 的CronTrigger 也是基于cron 进行调度的CronTrigger 使用cron 表达式来定义调度的时间规则cron 表达式功能时非常强大的, 也是非常复杂的, 由六段或七段组成, 容易产生困惑.2. cron 表达式格式cron 表达式由空格分割的六段或七段...原创 2019-08-27 16:18:15 · 3333 阅读 · 0 评论 -
06.Quartz 监听器-JobListener
JobListener 可用于监听定时任务执行的事件, 并在定时任务执行前后做一些自定义操作, 类似于java 切面编程的环绕通知. 需要注意的时,quartz 2.x系列, 监听器已不再进行持久化操作, 自然也就没有分布式监听这一说了. 在quartz 1.x 时, 数据库表还有监听器相关的表, 笔者猜测quartz1.x 应该对监听器也做了持久化吧. 在自定义1. JobListener 定...原创 2019-08-27 16:18:11 · 4479 阅读 · 1 评论 -
07.Quartz 监听器-TriggerListener
TriggerListner 用于监听触发器的相关创建, 用于在触发器触发前后做一些自定义操作. quartz 中TriggerListener的设计思想和JobListener 的设计思想如出一辙. 和JobListener 类似, quartz 2.x 也不再进行持久化操作.1. TriggerListener 定义quartz 提供了两种方式自定义自己的TriggerListener, ...原创 2019-08-27 16:18:08 · 4019 阅读 · 0 评论 -
08.Quartz 监听器-SchedulerListener
SchedulerListener 是用于监控调度器scheduler 中添加,删除定时任务或触发器等操作, 和JobListener, TriggerListener类似, 但由有不同. SchedulerListener 全局唯一, 也就是说一个Scheduler 只能配置一个SchedulerListener 监听器.1. SchedulerListener 接口和JobListene...原创 2019-08-27 16:18:04 · 3335 阅读 · 0 评论 -
09.Quartz 核心API简介
笔者认为, 若想灵活操作Quartz, 那么需要对Quartz的核心类和接口有一定的了解. quartz 最核心的类时Scheduler, 用于对定时任务的管理.1. Quartz 核心类1. Quartz 常用接口Job: 定时任务接口, 定时任务触发时会执行其execute方法. 自定义任务类必须实现, 并重写execute方法JobListener: Job监听器接口, 自定义Jo...原创 2019-08-27 16:17:59 · 3626 阅读 · 0 评论 -
10.Quartz 常用配置
Quartz 的配置项有点儿多, 但是大部分使用默认即可. 可以根据自己的需要, 在quartz.properties配置文件中自行配置. quartz.properties配置文件会被StdSchedulerFactory解析, 因此可以在StdSchedulerFactory类中可以看到全部的配置参数. 具体参数的详细使用说明, 请在quartz 官网查阅. 笔者这里只整理了部分常用的配置项....原创 2019-08-27 16:17:55 · 3912 阅读 · 0 评论 -
11.Quartz cron表达式校验与模拟触发
cron 表达式是非常强大而复杂的, 在面对cron表达式时, 我们往往会产生困惑, 写出的cron表达式是否会按自己预期的时间执行呢? 对于大多数定时任务而言, 我们并没有办法跟踪校验它是否如期运行. 笔者在进行定时任务开发时也会遇到这样的困惑, 所以便开发了一个模拟定时任务允许时间的工具类. 后来在网上发现也有类似的工具与笔者想法不谋而合, 在线测试地址:http://www.bejson.c...原创 2019-08-27 16:17:51 · 4542 阅读 · 1 评论 -
12.SpringBoot2 整合Quartz2(一)
Springboot 是当下最流行的一个java框架了, 它大大降低了开发人员集成框架的时间, 提升了开发效率. 但是springboot 集成quartz时却没有想象地那么简单, 而且网上文章集成方式各种各样, 笔者在浏览数篇整合博客之后, 感觉整合方式并不符合笔者的开发习惯, 因此便决定自己进行整合. 整合过程也时一波三折, 笔者将用两篇博客分享.整合目标:任意springbean中的...原创 2019-08-27 16:17:47 · 23666 阅读 · 0 评论 -
13.SpringBoot2 整合Quartz2(二)
3. spring整合quartz3.1 创建Quartz配置类创建QuartzConfig.java, 解析quartz.properties配置文件, 并向spring容器中注入调度器bean/** * @Description: quartz 框架整合配置 * @author: zongf * @date: 2019-03-13 16:31 */@Configuration...原创 2019-08-27 16:17:43 · 22911 阅读 · 0 评论 -
14.SpringBoot2整合Quartz2-自定义Scheduler监听器
Quartz支持对调度器Scheduler进行监听, 可以监听调度器新增Job, 删除Job, 暂停Job, 恢复Job 等操作. Quartz 整合SpringBoot2之后, 配置Scheduler监听器的方式也是一样. 但是需要注意:一个Scheduler 只有一个监听器, 全局唯一Scheduler监听器不会进行持久化, 所以项目重启之后需要重新注册1. 自定义Scheduler...原创 2019-08-27 16:17:39 · 23207 阅读 · 0 评论 -
15.SpringBoot2整合Quartz2-自定义Job监听器
Quartz 可以为定时任务配置JobListener, 当Job触发时,可以在Job执行前后做一些操作, 这一点儿类似于Spring的AOP编程. 和SchedulerListener类似, quartz2.x 也不支持对JobListener进行持久化, 所以每次项目启动也需要重新注册监听器. 和SchedulerListener不同的是JobListener 可以监听一到多个Job, 可以按...原创 2019-08-27 16:17:34 · 23642 阅读 · 0 评论 -
16.SpringBoot2整合Quartz2-自定义Trigger监听器
Quartz 不仅可以监听Job, 还可以监听Trigger. 可以在Trigger触发前后或misfires时做一些操作. TriggerListener 和 JobListener 的创建和注册方式都比较像. 笔者就不做过多的介绍了1. 自定义TriggerListener/** * @Description: 监听HelloTrigger * @author: zongf * @d...原创 2019-08-27 16:15:48 · 23496 阅读 · 0 评论