2017-08-01 12 views
1

私は石英を使用しています。方法1では、私はschedular工場への上記の呼び出しは、私が方法1で作成した同じインスタンスを返しますんSchedularFactoryは新しいメソッドで同じインスタンスを返しますか

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

をすれば、方法2では、この

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

ように私のschedularを初期化していますまたはそれは別のインスタンスを返すでしょうし、私はすべての私の仕事をリンクし、それをトリガーする必要があります。

+0

私はそれを見るために/テスト後、自問してみてくださいする方が簡単であるか疑問? ... – marekful

答えて

1

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; 
} 
関連する問題