Quartz初始化源码跟踪(3)

正式初始化QuartzScheduler
调度器接口及实现如下


Scheduler

StdScheduler 默认的调度器,其实就是QuartzScheduler类的包装。

QuartzScheduler 核心类

ExecutingJobsManagerjobMgr=null;

ErrorLoggererrLogger=null;

privateSchedulerSignalersignaler;

1.构造方法

public QuartzScheduler(QuartzSchedulerResources resources,longidleWaitTime,@Deprecated long dbRetryInterval)
throwsSchedulerException{
    //配置资源
    this.resources = resources;
    if(resources.getJobStore() instanceof JobListener){
        addInternalJobListener((JobListener)resources.getJobStore());
    }

    //构造调度线程...核心线程!!!
    this.schedThread = new QuartzSchedulerThread(this,resources);
    ThreadExecutor schedThreadExecutor = resources.getThreadExecutor();
    schedThreadExecutor.execute(this.schedThread);
    if(idleWaitTime>0){
        this.schedThread.setIdleWaitTime(idleWaitTime);
    }
    
    jobMgr = new ExecutingJobsManager();
    addInternalJobListener(jobMgr);
    errLogger=newErrorLogger();
    add InternalSchedulerListener(errLogger);
    
    signaler = new SchedulerSignalerImpl(this,this.schedThread);
    
    if(shouldRunUpdateCheck())
        updateTimer=scheduleUpdateCheck();
    else
        updateTimer=null;
    
    getLog().info("QuartzSchedulerv."+getVersion()+"created.");
}

初始化
bind 绑定rmi调用
registerJMX 注册JMX

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容