QuartzScheduler
/**
* <p>
* This is the heart of Quartz, an indirect implementation of the <code>{@link org.quartz.Scheduler}</code>
* interface, containing methods to schedule <code>{@link org.quartz.Job}</code>s,
* register <code>{@link org.quartz.JobListener}</code> instances, etc.
* </p>
*
* @see org.quartz.Scheduler
* @see org.quartz.core.QuartzSchedulerThread
* @see org.quartz.spi.JobStore
* @see org.quartz.spi.ThreadPool
*
* @author James House
*/
public class QuartzScheduler implements RemotableQuartzScheduler {}
--------------------------
private QuartzSchedulerResources resources; //资源bean,包括线程池、jobstore等资源
private QuartzSchedulerThread schedThread; //负责触发器触发
private ThreadGroup threadGroup;
//Holds context/environment data that can be made available to Jobs as they are executed. 持有环境变量和上下文数据
//This feature is much like the ServletContext feature when working with J2EE servlets. 类似于Servlet容器中的ServletContext
private SchedulerContext context = new SchedulerContext();
//监听器
private ListenerManager listenerManager = new ListenerManagerImpl();
private HashMap<String, JobListener> internalJobListeners = new HashMap<String, JobListener>(10);
private HashMap<String, TriggerListener> internalTriggerListeners = new HashMap<String, TriggerListener>(10);
private ArrayList<SchedulerListener> internalSchedulerListeners = new ArrayList<SchedulerListener>(10);
private JobFactory jobFactory = new PropertySettingJobFactory();