1

我有 5 个不同的石英调度程序,它们实现了 5 个不同的作业。如果我要停止一个调度程序,其余的调度程序就会停止。为什么?

4

1 回答 1

0

我很确定你实际上创建了对同一个调度程序的引用,你需要给每个调度程序一个不同的“调度程序名称”。目前看起来每次创建新调度程序时都会默认调度程序名称。

“作业执行者”实际上不是 SchedulerFactoryBean。它是由 SchedulerFactoryBean 提供的调度程序 bean(准确地说,调用它的 start 方法会调用触发 Trigger-s 的聚合 QuartzScheduler.start 方法)。事实上,这个调度器被存储(和查找)在调度器名称(如果没有明确设置,对于每个配置的调度器工厂bean具有相同的默认值)在调度器存储库单例(调度器Repository.getInstance())下。除非您为 SchedulerFactoryBean-s 设置不同的 schedulerName,否则您将始终通过每个 SchedulerFactoryBean-s 获得相同的调度程序。

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

我知道这是指 Spring Beans,但我仍然认为这里同样适用。

于 2012-09-26T13:14:33.060 回答