Quartz基本介绍

参考引用:

Quartz官方文档

Quartz大致介绍

Quartz-Trigger详解

基本概念

Quartz是一个完全由Java编写的开源作业调度框架,是OpenSymphony开源组织在Job scheduling领域又一个开源项目,可以创建,暂停,取消,同时运行,处理多个定时任务,在设定时间到达时自动执行任务,且非常易用。

核心概念

Job 表示一个工作,要执行的具体内容。此接口中只有一个方法,如下:

1
void execute(JobExecutionContext context) 

JobDetail 表示一个具体的可执行的调度程序,Job 是这个可执行程调度程序所要执行的内容,另外 JobDetail 还包含了这个任务调度的方案和策略。

Trigger 代表一个调度参数的配置,什么时候去调。

Scheduler 代表一个调度容器,一个调度容器中可以注册多个 JobDetail 和 Trigger。当 Trigger 与 JobDetail 组合,就可以被 Scheduler 容器调度了。

注:一个Job可以被多个Trigger 绑定,但是一个Trigger只能绑定一个Job!

定时器的种类

Quartz 中五种类型的 Trigger:

  • SimpleTrigger:用来触发只需执行一次或者在给定时间触发并且重复N次且每次执行延迟一定时间的任务

  • CronTirgger:使用Cron表达式来触发,附:Cron在线生成器

  • DailyTimeIntervalTrigger:指定每天的某个时间段内,以一定的时间间隔执行任务。并且它可以支持指定星期。

  • NthIncludedDayTrigger:用于在每一间隔类型的第几天执行 Job

  • CalendarIntervalTrigger:类似于SimpleTrigger,指定从某一个时间开始,以一定的时间间隔执行的任务

存储方式

  • RAMJobStore:使用内存作为存储

  • JDBCJobStore :使用数据库作为存储

类型 优点 缺点
RAMJobStore 不要外部数据库,配置容易,运行速度快 因为调度程序信息是存储在被分配给JVM的内存里面,所以,当应用程序停止运行时,所有调度信息将被丢失。另外因为存储到JVM内存里面,所以可以存储多少个Job和Trigger将会受到限制
JDBCJobStore 支持集群,因为所有的任务信息都会保存到数据库中,可以控制事物,还有就是如果应用服务器关闭或者重启,任务信息都不会丢失,并且可以恢复因服务器关闭或者重启而导致执行失败的任务 运行速度的快慢取决与连接数据库的快慢

注:使用数据库方式时,需要配置数据源,并导入Quartz提供的sql,需要下载对应版本的Quartz,官网传送门,sql位置:org/quartz/impl/jdbcjobstore,选择对应数据源的sql导入

文章作者: C.c
文章链接: https://liquidcat.cc/quartz基本介绍.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Me