它有很多特征,如:数据库支持,集群,插件,EJB作业预构建,JavaMail及其它,支持cron-like表达式等等。
Quartz使用的地方有很多,比如报表中需要每天凌晨十二点统计数据,还有RSS文件的生成也是通过Quartz定义作业,每隔半小时生成一次RSS XML文件。
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
<version>2.2.1</version>
</dependency>
将quartz.properties文件添加到class下
调度器
Quartz框架的核心是调度器。调度器负责管理Quartz应用运行时环境。调度器不是靠自己做所有的工作,而是依赖框架内一些非常重要的部件。Quartz不仅仅是线程和线程管理。为确保可伸缩性,Quartz采用了基于多线程的架构。
启动时,框架初始化一套worker线程,这套线程被调度器用来执行预定的作业。这就是Quartz怎样能并发运行多个作业的原理。
Quartz依赖一套松耦合的线程池管理部件来管理线程环境。
任务(Job)
Job就是一个执行任务的简单Java类,任务可以是任何的Java代码,只需要实现org.quartz.Job接口并且在出现严重错误情况下抛出
JobExecutionException异常即可。Job接口包含唯一的一个方法execute(),作业从这里开始执行。一旦实现了Job接口和execute()
方法,当Quartz确定该是作业运行的时候,它将调用你的作业。Execute()方法内就完全是你要做的事情。
触发器
Quartz中的触发器用来告诉调度程序作业什么时候触发。框架提供了一些触发器类型,但两个最常用的是SimpleTrigger和
CronTrigger。