quartz的核心接口如下:
| 接口 | 含义 |
| Scheduler | scheduler的主要API接口 |
| Job | 任务实现接口,期望调度器能够执行 |
| JobDetail | 用于定义Job实例 |
| Trigger | 调度器基于特定时间来执行指定任务的组件 |
| JobBuilder | 用于定义、创建JobDetail实例 |
| TriggerBuilder | 用于定义、创建Trigger实例 |
1. Scheduler
一个调度器的生命周期为通过SchedulerFactory创建,直到执行其shutdown()方法。当Scheduler创建之后,可以进行增加、删除及显示任务Job与触发器Trigger,并且执行其他的调度相关的操作,如暂停一个触发器Trigger。需要注意的是,直到调用start()方法时,Scheduler才正式开始执行job和trigger。
StdSchedulerFactory用于创建Scheduler,其依赖于一系列的属性来决定如何产生Scheduler。可以通过四种途径向StdSchedulerFactory提供属性配置信息。
1) 通过java.util.Properties实例提供
package org.ws.quartz.test2; import java.util.Properties; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.impl.StdSchedulerFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class SchedulerExample { private static Logger logger = LoggerFactory.getLogger(SchedulerExample.class); public static void main(String[] args) { // 创建工厂实例 StdSchedulerFactory factory = new StdSchedulerFactory(); // 创建配置工厂的属性对象 Properties props = new Properties(); props.put(StdSchedulerFactory.PROP_THREAD_POOL_CLASS, "org.quartz.simpl.SimpleThreadPool"); // 线程池定义 props.put("org.quartz.threadPool.threadCount", "10"); // 默认Scheduler的线程数 try { // 使用定义的属性初始化工厂 factory.initialize(props); Scheduler scheduler = factory.getScheduler(); scheduler.start(); logger.info("scheudler started, metadata: "+scheduler.getMetaData()); } catch (SchedulerException e) { e.printStackTrace(); } } }