我在负载均衡的环境中有多个石英cron作业。目前,这些作业正在每个节点上运行,这是不可取的。我希望节点只运行特定的调度程序,如果节点崩溃,另一个节点应该运行用于崩溃的节点的调度程序。 如何使用spring 2.5.6 / tomcat负载均衡器来完成。
答案 0 :(得分:0)
我认为这个问题有几个方面。
首先,Quartz拥有用于暂停和恢复调度程序的API方法,甚至是单独的触发器和作业
我会创建一个带有Quartz调度器或触发器的spring bean,以及一个用于存储状态的简单isMasterNode boolean成员。然后,我将公开2个[限制访问] Web服务调用:makeMaster和makeSlave,它们将分别调用Scheduler.resume()或standby / pause。
Finall,最大的问题是如何&用你确定的另一个节点'崩溃'。
如果您正在使用硬件负载均衡器来管理它,您可以将其配置为在新的“主要”节点上调用“makeMaster”WS,后者又调用Scheduler.resume()或类似节点。
HTH