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方法。

博主微信公众号

posted on 2022-03-12 16:14  幕友皎敖奔乾  阅读(139)  评论(0编辑  收藏  举报

导航