Quartz API 的关键接口有:
- Scheduler : 和调度器交互的主要API。
- Job :开发者时间该接口,将业务代码放进去,然后交给调度器执行。
- JobDetail :用来定义Job的实例。
- Trigger :一个组件,用来调度 一个给定的要被执行的Job。
- JobBuilder : 用来创建 JobDetail 实例,从某一种成都上说也就是 Job的实例。
- TriggerBuilder :用来创建 Trigger 的实例。
调度器的生命周期: SchedulerFactory 创建调度器,生命周期开始,shutdown() 方法调用之后,生命周期结束。
Scheduler 的实例一旦创建,就可以 Add、Remove Jobs 和 Triggers,还可以查询调度器中所有的Job和trigger, 还可以执行其他的有关调度的工作(譬如,让某一个触发器暂停)。调度器不会启动触发器,直到start()方法被调用。
Quartz 提供了一些建造者,定义了一些 领域特定语言。下面是一些例子:
// define the job and tie it to our HelloJob class JobDetail job = newJob(HelloJob.class) .withIdentity("myJob", "group1") // name "myJob", group "group1" .build(); // Trigger the job to run now, and then every 40 seconds Trigger trigger = newTrigger() .withIdentity("myTrigger", "group1") .startNow() .withSchedule(simpleSchedule() .withIntervalInSeconds(40) .repeatForever()) .build(); // Tell quartz to schedule the job using our trigger sched.scheduleJob(job, trigger);
不同的 ScheduleBuilder 类可以 创建不同类型的 调度。
DateBuilder 类提供了很多的方法,很容易就能构造特殊事件的 java.util.Date 对象。