1. 概念¶
Quartz是OpenSymphony开原组织在Job 刹车都灵领域又一个开源项目,它可以与j2ee与j2se应用程序结合使用也可以单独使用.
quartz是开源且具有丰富特性的"任务调度库",能够集成于各种java应用,小到独立的应用,大至电子商与系统.quartz能够创建亦简单亦复杂的的调度,以执行上十 上百 甚至上万的任务. 任务job被定义为标准的java组价,能够执行你想要实现的功能. quartz调度框架包含很多企业级特性,如JTA事务 集群的支持.
简而言之,quartz就是基于java实现的任务调度框架,用于执行你想要的任何任务
2. Quartz运行环境¶
- Quartz可以运行前任在另一个独立式应用程序中.
- Quartz可以在应用程序服务器(或servlet容器中)内被实例化,并且参与事务.
- Quartz可以作为一个独立的程序运行(其自己的java虚拟机内),可以通过RMI使用.
- Quartz可以被实例化,作为独立的项目集群(负载平衡和故障转移功能),用于作业执行.
3. Quartz设计模式¶
- Builder模式
- Factory模式
- 组件模式
- 链式编程
4. Quartz学习核心概念¶
- 任务
Job
Job就是你想要实现的任务类,每个Job都必须实现org.quartz.Job接口,并且只需实现execute()方法
- 触发器
Trigger
Trigger为你执行任务的触发器,比如你想每天定时3点发送一份统计邮件,Trigger将会设置3点执行该任务.
Trigger主要包含两种:
SimpleTrigger: 定时触发器-
CronTigger: 日历触发器 -
调度器
Scheduler
Scheduler为任务的调度器,它会将任务Job以及触发器Trigger整合起来,负责基于Trigger设定的时间来执行Job
5. 体系结构¶
.png)
6. Quartz 常用API¶
一下是Quartz常用的几个重要接口,也是Quartz的重要组件
Scheduler用于与调度程序交互的主程序接口
Scheduler调度程序-任务执行计划表,只有安排进执行计划的任务job(通过scheduler.schedulejob方法安排进行执行计划),当它预先定义的执行时间到了的时候(任务触发器trigger),该任务才会执行
-
Job我们预先定义在未来需要被调度的执行程序的任务类. -
JobDetail使用jobdetalil来定义定时任务的实例,jobdetail实力是通过JobBuilder类创建的. -
JobDataMap可以包含不限量的(序列化的)数据对象,在Job实例执行的时候,可以使用其中的数据;JobDataMap是一个Map的实现,额外增加了一些标语存取的基本数据类型的方法 -
Trigger触发器,Trigger对象是用来触发执行Job的.当调度一个Job时,我们实例一个触发器后调整它的属性来满足job的执行条件.表明任务在什么时候会执行.定义了一个已经被安排的任务将会在什么时候执行的时间条件. -
JobBuilder用于声明一个任务实例,也可以定义关于该任务的详情,比如任务名 组名等,这个生命的实例将会作为一个实际执行的任务. -
TriggerBuilder触发器创建,用于创建触发器trigger实例 -
JobListenerTriggerlistenerSchedulerListener监听器,用于对组件的监听