Quartz是一个完全由Java编写的开源任务调度的框架,通过触发器设置作业定时运行规则,控制作业的运行时间。其中quartz集群通过故障切换和负载平衡的功能,能给调度器带来高可用性和伸缩性。主要用来执行定时任务,如:定时发送信息、定时生成报表等
Quartz框架的主要特点:
- 强大的调度功能,例如丰富多样的调度方法,可以满足各种常规和特殊需求
- 灵活的应用方式,比如支持任务调度和任务的多种组合,支持数据的多种存储
- 支持分布式集群,在被Terracotta收购之后,在原来基础上进行了进一步的改造
Quartz框架的核心元素
Trigger
- Trigger用于定义调度任务的时间规则。
Job
- Job用来定义任务的执行逻辑
JobDetail
- JobDetail表示一个具体的可执行的调度程序,Job是这个可执行的调度程序所要执行的具体内容,另外JobDetail还包含了这个任务调度的方案和策略
Scheduler
- 实际执行调度逻辑的控制器(也可以理解为调度容器),可以将多个JobDetail和Trigger注册到Scheduler中,就可以通过Scheduler进行控制执行
依赖
代码语言:javascript复制<!--定时任务Quartz -->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<!--定时任务 -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.3</version>
</dependency>
</dependencies>