3

我已经配置了两个 Java WARs 与石英调度程序(版本2.2.1)从XMLSchedulingProcessorPlugin开始。这两个 Web 应用程序也在集群模式下运行(它们部署在两台相同的机器上),所以我启用了quartz 的属性:

#===========================================================================
# Clustering
#===========================================================================
org.quartz.jobStore.isClustered = true
org.quartz.jobStore.clusterCheckinInterval = 60000

这两个应用程序都在配置有 Quartz 的JobStoreTX的 JBOSS AS 7.1 中运行。他们将作业、触发器等保存到MySQL数据库中,该数据库当前配置有Galera DB(1 个虚拟 IP 地址,2 个真实节点)。

目前,我正在测试其中一个真实节点的故障,因此即使发生断电,作业也会继续触发。在那种情况下,我注意到了一些失败,例如这个Terracotta问题中描述的失败(该补丁未应用于当前版本的 Quartz)。

就我而言,我应该在QRTZ_SCHEDULER_STATE表中有 4 个 Quartz 实例……即使其中一个 MySQL 节点重新启动。事实是,有时会从表中删除一个或两个实例(可能是那些没有任何活动作业的实例),所以我担心在集群恢复期间可能会丢失应用程序的两个实例。

有没有人有同样的经历?除了重新启动 JBOSS 以重新加载作业和触发器之外,还有其他解决方案吗?

提前致谢。

4

0 回答 0