1.简介
2.优点
3.核心元素介绍
4.线程视图
5.数据存储
- 简介
Quartz 是 OpenSymphony 开源组织在任务调度领域的一个开源项目,完全基于 Java 实现。该项目于 2009 年被 Terracotta 收购,目前是 Terracotta 旗下的一个项目。 http://www.quartz-scheduler.org/ 这里可以下载 Quartz 的发布版本及其源代码。
- 优点
- 强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求;
- 灵活的应用方式,例如支持任务和调度的多种组合方式,支持调度数据的多种存储方式;
- 分布式和集群能力,Terracotta 收购后在原来功能基础上作了进一步提升。本文暂不讨论该部分内容
- 作为 Spring 默认的调度框架,Quartz 很容易与 Spring 集成实现灵活可配置的调度功能。
- 核心元素介绍
-
scheduler 任务调度器:可以理解为实际执行调度的控制器。
在 Quartz 中, scheduler 由 scheduler 工厂创建:
(1)DirectSchedulerFactory
(2)StdSchedulerFactory。
Scheduler 主要有三种:
(1)RemoteMBeanScheduler
(2)RemoteScheduler
(3)StdScheduler。最常用! -
trigger 触发器:用于定义任务调度时间规则。
Quartz 中主要提供了四种类型的 trigger:
(1)SimpleTrigger;
(2)CronTirgger;
(3)DateIntervalTrigger;
(4)NthIncludedDayTrigger; -
job 任务。
主要有两种类型的 job:
(1)无状态的(stateless)
(2)有状态的(stateful)
对于同一个 trigger 来说,有状态的 job 不能被并行执行,只有上一次触发的任务被执行完之后,才能触发下一次执行。
- 线程视图
- 数据存储
qrtz_blob_triggers : 以Blob 类型存储的触发器。
qrtz_calendars:存放日历信息,quartz可配置一个日历来指定一个时间范围。
qrtz_cron_triggers:存放cron类型的触发器。
qrtz_fired_triggers:存放已触发的触发器。
qrtz_job_details:存放一个jobDetail信息。
qrtz_job_listeners:job监听器。
qrtz_locks: 存储程序的悲观锁的信息(假如使用了悲观锁)。
qrtz_paused_trigger_graps:存放暂停掉的触发器。
qrtz_scheduler_state:调度器状态。
qrtz_simple_triggers:简单触发器的信息。
qrtz_trigger_listeners:触发器监听器。
qrtz_triggers:触发器的基本信息。
ps: https://github.com/AnnCoding/quartzDemo 持续更新......