一、概念
quartz 是一款开源且丰富特性的“任务调度库”,能够集成与任何的java应用,下到独立应用,大到电子商业系统。quartz就是基于java实现的任务调度框架,用于执行你想要执行的任何任务。
什么是 任务调度 ?任务调度就是我们系统中创建了 N 个任务,每个任务都有指定的时间进行执行,而这种多任务的执行策略就是任务调度。
quartz 的作用就是让任务调度变得更加丰富,高效,安全,而且是基于 Java 实现的,这样子开发者只需要调用几个接口坐下简单的配置,即可实现上述需求。
Quartz主要由三部分组成:
1、任务 Job(实现具体执行的任务代码)
2、触发器 Trigger(定义触发相应任务的规则)
Quartz的两种Trigger:
SimpleTrigger
简单触发器,在一个指定时间段内执行一次作业任务或是在指定时间间隔内执行多次作业任务
CronTrigger
基于日历的作业调度器,而不是像SimpleTrigger那样精确指定间隔时间。它可以设定非常复杂的触发时间表,基于cron表达式,比SimpleTrigger复杂、常用。
3、调度器 Schedule(对任务Job和触发器Trigger进行统筹)
体系结构
2、项目实际应用
- 导入依赖
- 自定义任务
(1)需要实现job接口
(2)需要重写execute方法(执行具体逻辑)
Job 是工作任务调度的接口,任务类需要实现该接口。该接口中定义了 execute 方法,我们需要在里面编写任务执行的业务逻辑,类似
JDK 提供的 TimeTask 类的 run方法。每次调度器执行 Job 时,在调用 execute 方法之前都会创建一个新的 Job
实例,当调用完成后,关联的 Job 对象示例会被释放,释放的实例会被垃圾回收机制回收。
- 创建任务调度
与Job不一样,JobDetail 是描述Job实例所包含的属性。如上图中的withIdentity(赐予身份)
Trigger 触发器
触发job的执行 simplateTrigger
在一个指定时间段内执行一次作业任务或是在指定时间间隔内执行多次作业任务 CronTrigger 基于日历的作业调度器,基于cron表达式
通用属性:
JobKey 标识Job实例,触发器根据此指定job实例执行 StartTime
触发器的时间表首次被触发的时间,值为Java.util.Date EndTime 触发器不再被触发的时间,值同上