1

5 つの異なるジョブを実装する 5 つの異なるクォーツ スケジューラがあります。1 つのスケジューラーを停止すると、残りのスケジューラーが停止します。なんで?

4

1 に答える 1

0

実際に同じスケジューラへの参照を作成していると確信しています。各スケジューラに異なる「SchedulerName」を与える必要があります。現時点では、新しいスケジューラを作成するたびに SchedulerName がデフォルトになっているようです。

「ジョブ実行者」は、実際には SchedulerFactoryBean ではありません。これは、SchedulerFactoryBean によって提供される Scheduler Bean です (正確には、その start メソッドを呼び出すと、Trigger を起動する集約された QuartzScheduler.start メソッドが呼び出されます)。実際のところ、このスケジューラは、SchedulerRepository シングルトン (SchedulerRepository.getInstance()) の schedulerName (明示的に設定されていない場合、構成されたすべての SchedulerFactoryBean に対して同じデフォルト値を持つ) の下に格納 (およびルックアップ) されます。これが、SchedulerFactoryBean-s に異なる schedulerName を設定しない限り、SchedulerFactoryBean-s ごとに常に同じスケジューラーを取得する方法です。

http://forum.springsource.org/showthread.php?40945-Multiple-Quartz-SchedulerFactoryBean-instances

これがSpring Beansを指していることは知っていますが、ここでも同じことが当てはまると思います。

于 2012-09-26T13:14:33.060 に答える