Quartz - 2 个应用程序上的重复作业,潜在的缓存问题

Quartz - Duplicate Jobs on 2 Apps, Potential Caching Issue

假设我有一些 tomcat webapp 有一个 运行s 每小时的 quartz 工作,我已经在一个有这个应用程序 运行ning 的实例的环境中很好地测试了它.没有重复的 运行s,一切都符合预期。

现在我将这个应用程序移到一台机器上,该机器同时具有两个环境 运行ning - DEV 和 QA。它们 运行 在单独的 JDK 上,并且有单独的 tomcat 安装:/myapp/tomcatD 和 /myapp/tomcatQ。

ps -ef
...
admin     32089     1  2 10:14 pts/2    00:01:53 /myapp/java/jdk1.6.0_45_QA/jre/bin/java -Djava.util. ... 
admin     32296     1 99 11:44 pts/2    00:00:06 /myapp/java/jdk1.6.0_45_DEV/jre/bin/java -Djava. ...

首先,我将相同的构建和 scheduler.xml 部署到 DEV。它可以正常工作数周。现在我部署到 QA 并注意到 QA 在其日志中和 DEV 中有重复的 运行 我的计划作业。

我将 DEV 的作业安排到 运行 时间:

<value>30 0 * ? * *</value><!-- Every hour on :00 minute :30 second -->

QA 的职位 运行 位于:

<value>0 0 * ? * *</value><!-- Every hour on :00 minute -->

我观察到每个日志在 XX:00:00 和 XX:00:30 上都有一个 运行。

起初我以为他们只是在记录彼此的工作。但是,当我关闭 DEV 时,我注意到 QA 仍然是 运行 作业的第二个实例。我还尝试在 dev 仍然启动的情况下重新启动 QA,但这也没有用——重复的 运行s 仍然发生。我还尝试将 DEV 的 scheduler.xml 替换为已注释掉所有作业的一个。没有成功。

Quartz 的幕后发生了什么?即使在应用程序关闭或重新启动时,也必须对这些作业进行一些缓存。

此外,在这些应用程序之外是否有一些 Quartz 进程允许它们 运行 彼此的工作?

重新审视这个解决方案,以防它对任何人有帮助——石英没有问题,xml没有任何有趣的事情发生。

唯一的问题是有人将 webapp 中的应用程序目录复制并粘贴到其他文件夹,但没人知道。 2 个应用程序同时 运行。

tomcat
  webapps
    myapp
    examples
      some_devious_person_copied_myapp_here and it was running alongside the other one, causing duplicate instances of the jobs