我已经使用 XMLSchedulingProcessorPlugin 从石英调度程序(版本 2.2.1 )配置了两个Java WAR。两个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以重新加载作业和触发器之外的任何其他解决方案?
提前致谢。