什么是Quartz?
- Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用
- Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs(定时任务)这样复杂的程序。Jobs实际就是自定义的普通java类。
作用
能够为每个定时任务设置一个启动运行的时间,以便达到我们的一些需求,如定时清理程序垃圾等。
特点
- 完全由Java写成,方便集成(Spring)
- 伸缩性
- 负载均衡
- 高可用性
使用场景
典型的使用场景,主要用来执行定时任务
- 定时发送信息
- 定时生成报表
- 自动更新静态数据
- 自动结账等等
原理
-
核心组件图
-
Scheduler任务调度
是最核心的概念,需要把JobDetail和Trigger注册到scheduler中,才可以执行
-
Job任务
其实Job是接口,其中只有一个execute方法,我们只需要 implements 此接口,重写 execute(*) 方法。
-
Trigger触发器
执行任务的规则;比如每天,每小时等。
-
JobDetail任务细节
任务细节,Quartz执行Job时,需要新建个Job实例,但是不能直接操作Job类,所以通过JobDetail来获取Job的名称、描述信息。
使用
-
导入坐标
pom.xml
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version> </dependency> <dependency> <groupI