Quartz 任务调度的核心元素是 scheduler, trigger 和 job,其中 trigger 和 job 是任务调度的元数据, scheduler 是实际执行调度的控制器。
1.scheduler
scheduler 由 scheduler 工厂创建:DirectSchedulerFactory 或者 StdSchedulerFactory。
第二种工厂 StdSchedulerFactory 使用较多,因为 DirectSchedulerFactory 使用起来不够方便,需要作许多详细的手工编码设置。
Scheduler 主要有三种:RemoteMBeanScheduler, RemoteScheduler 和 StdScheduler。现在好像又多了一种。
2.两种Factory
3.返回值
1 /** 2 * <p> 3 * Returns a handle to the Scheduler produced by this factory. 4 * </p> 5 * 6 * <p> 7 * If one of the <code>initialize</code> methods has not be previously 8 * called, then the default (no-arg) <code>initialize()</code> method 9 * will be called by this method. 10 * </p> 11 */ 12 public Scheduler getScheduler() throws SchedulerException { 13 if (cfg == null) { 14 initialize(); 15 } 16 17 SchedulerRepository schedRep = SchedulerRepository.getInstance(); 18 19 Scheduler sched = schedRep.lookup(getSchedulerName()); 20 21 if (sched != null) { 22 if (sched.isShutdown()) { 23 schedRep.remove(getSchedulerName()); 24 } else { 25 return sched; 26 } 27 } 28 29 sched = instantiate(); 30 31 return sched; 32 }
4.主要的Scheduler