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

    博主微信公众号

  • 相关阅读:
    C#获取htmltry
    分页存储过程的写法 可以被调用
    验证邮箱地址是否正确的方法
    WinForm 异步调用方法
    C#基础复习第一部
    PowerDesigner12.5 下载、汉化及破解
    C# Timer用法及实例详解
    ADO.NET复习笔记
    C# 使用委托实现多线程调用窗体
    C#中存储过程的调用
  • 原文地址:https://www.cnblogs.com/chenhaoblog/p/15997530.html
Copyright © 2020-2023  润新知