介绍
概念
- Job(作业)
- 表示需要执行的任务逻辑,是一个实现
org.quartz.Job接口的类,需重写execute()方法
- JobDetail: 对Job的封装,包含Job的名称,组名,描述,持久化配置等元数据,由
JobBuiler构建
- Trigger(触发器)
- 定义Job的执行时间规则
- 核心触发器分为固定触发器(SimpleTrigger)与CRON表达式触发器(CronTrigger)
- Trigger由
TriggerBuilder构建,包含优先级,触发时间,重复次数等属性
- Scheduler(调度器)
- 核心组件,负责管理Job和Trigger的生命周期,并根据触发规则执行作业
- 常用实现类:
StdScheuler,通过SchedulerFactory获取实例
- JobExecutionContext(作业执行上下文)
- 传递给
Job.execute()方法的向上问对象,包含当前调度器,触发器,作业等信息,用于获取任务运行时数据
- JobDataMap
- 键值对集合,用于在Job与Trigger之间传递数据
- Listener(监听器)
- 用来监听作业,触发器,调度器的生命周期
- JobListener: 作业监听器
- TriggerLIstener: 触发器监听器
- SchedulerListener: 调度器监听器
架构
- 调度核心: 管理调度逻辑,协调触发器与作业的执行
- 作业存储: 负责持久化调度器,触发器与作业的状态
- RAMJobStore: 内存存储,性能高但不持久化
- JDBCJobStore: 数据库存储,支持集群和持久化,需要配置数据库连接
- 线程池: 管理执行作业的线程,默认使用
SimpleThreadPool
- 触发器管理: 解析触发器规则,计算出发时间
依赖
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version2.3.2></version>
</depdendency>
使用
- 引入依赖
- 定义Job类,实现Job接口,重写
execute()方法
- 根据规则,构建JobDetail与Trigger
- 创建调度器示例,注册Job与Trigger,启动调度器