代码之家  ›  专栏  ›  技术社区  ›  JManish

SchedularFactory是否使用新方法返回相同的实例

  •  1
  • JManish  · 技术社区  · 7 年前

    Scheduler scheduler = new StdSchedulerFactory().getScheduler();
    scheduler.scheduleJob(someJob,someTrigger);
    

    在方法2中,如果我这样做

    Scheduler scheduler = new StdSchedulerFactory().getScheduler();
    

    上面对调度工厂的调用是否将返回我在方法1中创建的同一个实例,或者它是否将返回另一个实例,然后我需要将我的所有作业链接起来并触发。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Kayaman    7 年前

    由于您要创建2个工厂,因此它们不会返回相同的调度程序。如果要使用同一个调度程序,则应使用单个工厂。

    如果您使用的是单 StdSchedulerFactory ,如果未关闭,将重用调度程序(如果存在):

    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;
    }