2017-08-01 30 views
1

我正在使用石英schedular。在方法1,我初始化這樣SchedularFactory是否使用新方法返回相同的實例

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

我的程序器在方法2,如果我做

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

確實給程序器工廠上面的調用將返回我的方法1所創建的同一個實例或者它會返回另一個實例,然後我需要鏈接我的所有工作,並觸發它。

+0

我不知道它是如何更容易地問,然後看到/測試自己:如果它不關閉

如果您使用的是單StdSchedulerFactory,調度程序(如果存在)會被再利用? ... – marekful

回答

1

由於您正在創建2個工廠,因此它們不會返回相同的調度程序。如果您想使用相同的調度程序,則應該使用單個工廠。

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; 
} 
相關問題