quartz框架(三)-调度器创建之实例化

调度器创建之实例化

博主的前一篇博文主要介绍了schedule创建时的配置文件加载,下面博主将介绍一下scheduler的instantiate方法。

代码回顾

public Scheduler getScheduler() throws SchedulerException {
        if (cfg == null) {
            initialize();
        }

        SchedulerRepository schedRep = SchedulerRepository.getInstance();

        Scheduler sched = schedRep.lookup(getSchedulerName());

        if (sched != null) {
            if (sched.isShutdown()) {
                schedRep.remove(getSchedulerName());
            } else {
                return sched;
            }
        }

        sched = instantiate();

        return sched;
    }

instantiate方法

instantiate方法很长,这里就不贴上源码了。通过查看源码可知,quartz的instantiate方法主要就是根据之前加载好的配置文件来创建出scheduler需要用到的一些对象。

主要对象

  1. Job,业务逻辑类需要时间的接口
  2. JobStore,主要用于存储Job和Trigger。
  3. JobFactory,job实例化工厂。
  4. ThreadPool,主要用于分配任务给具体的线程进行执行。
  5. QuartzSchedulerThread,管理者线程。
  6. WorkThread,工作者线程。
  7. DBConnectionManager,数据库连接管理器。
  8. ThreadExecutor,线程执行器。
  9. SchedulerPlugin,调度器插件。
  10. JobListener,任务监听器。
  11. Trigger,触发器
  12. Schedule,时间表
  13. TriggerListerner,触发器监听器。
  14. JobRunShellFactory,jobRunShell的工厂。
  15. JobRunShell,实现了Runnale接口,会调用对应实例化的job的execute方法。

博主微信公众号

<img src="https://gitee.com/chenhaogit/blogimages/raw/master/xsj/wzgzh-8cm.jpg" style="float:right"/>

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

推荐阅读更多精彩内容