About Quartz
# Quartz
### 一、什么是Quartz作业调度?
Quartz框架是一个全功能、开源的任务调度服务,可以集成几乎任何的java应用程序,从小的单片机系统到大型的电子商务系统。Quartz可以执行成千上万的任务调度。
### 二、quartz的体系结构
#### 1.quartz中使用了以下几种设计模式。
1.1Builer模式
2.Factory模式
3.组件模式
4.链式写法
#### 2.三个主要概念
调度器:Quartz框架的核心就是调度器,调度器负责管理Quartz应用运行时环境,调度器不是考自己完成所有的工作。而是依赖框架内一些非常重要的部件。Quartz不仅是线程和线程池的管理者,为确保可伸缩性,Quartz采用了基于多线程的架构,启动时,框架初始化一套Worker线程,这套线程被调度器来执行预定的任务。这就是Quartz怎么能并发运行多个任务的原理。Quartz依赖一套松耦合的线程池管理部件来管理线程环境。
任务:这个就是我们自己编写的业务逻辑代码,交给Quartz来帮助我们执行。
触发器:调度任务,什么时候开始执行,什么时候结束执行。
#### 3.quartz的体系结构
quartz框架至少有三百多个类组成,这里我们重点介绍几个它的核心部分。
JobDetail:quartz每次都会直接创建一个JobDetail,同事创建一个Job示例,它不直接接受一个Job示例,但是它接受一个Job的实现类,通过new instance()的反射方式来实例一个Job,这里Job是一个接口,我们需要自己编写实现类去实现这个接口。
Trigger:它由SimpleTrigger和CronTrigger组成,SimpleTrigger实现类似Timer的定时调度任务,CronTrigger可以通过Cron表达式来实现一些更复杂的任务调度。
Scheduler:调度器,JobDetail和Trigger可以通过Schedule绑定到一起。