【发布时间】:2010-04-11 07:48:39
【问题描述】:
我在负载平衡环境中有多个石英 cron 作业。目前这些作业在每个节点上运行,这是不可取的。我希望一个节点只运行一个特定的调度程序,如果该节点崩溃,另一个节点应该运行用于崩溃节点的调度程序。 使用 spring 2.5.6/tomcat 负载均衡器如何做到这一点。
【问题讨论】:
标签: quartz-scheduler load-balancing
我在负载平衡环境中有多个石英 cron 作业。目前这些作业在每个节点上运行,这是不可取的。我希望一个节点只运行一个特定的调度程序,如果该节点崩溃,另一个节点应该运行用于崩溃节点的调度程序。 使用 spring 2.5.6/tomcat 负载均衡器如何做到这一点。
【问题讨论】:
标签: quartz-scheduler load-balancing
我认为这个问题有几个方面。
首先,Quartz 有 API 方法用于暂停和恢复调度程序,甚至是单独的触发器和作业
我将创建一个引用 Quartz 调度程序或触发器的 spring bean,以及一个用于存储状态的简单 isMasterNode 布尔成员。然后我会公开 2 个 [restricted-access] Web 服务调用:makeMaster 和 makeSlave,它们将分别调用 Scheduler.resume() 或待机/暂停。
最后,最大的问题是您如何确定另一个节点“崩溃”了。
如果您使用硬件负载均衡器来管理它,您可以将其配置为在新的“主”节点上调用“makeMaster”WS,然后调用 Scheduler.resume() 或类似的。
第
【讨论】: