负载均衡环境中的 Spring 调度程序

发布于 2024-08-28 01:59:33 字数 141 浏览 7 评论 0原文

我在负载平衡环境中有多个quartz cron 作业。目前这些作业在每个节点上运行,这是不可取的。我希望一个节点仅运行特定的调度程序,如果该节点崩溃,另一个节点应该运行针对崩溃节点的调度程序。 如何使用 spring 2.5.6/tomcat 负载均衡器来完成此操作。

I have multiple quartz cron jobs in a load balanced environment. Currently these jobs are running on each node, which is not desirable. I want a node to run only a particular scheduler and if the node crashes, another node should run the scheduler intended for the node that crashed.
How can this be done with spring 2.5.6/tomcat load balancer.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

决绝 2024-09-04 01:59:33

我觉得这个问题有几个方面。

首先,Quartz 具有用于暂停和恢复调度程序的 API 方法,甚至是单个触发器和作业,

例如
http://www.jarvana.com/jarvana/view/opensymphony/quartz/1.6.1/quartz-1.6.1-javadoc.jar!/org/quartz/Scheduler.html#standby( )

我将创建一个引用 Quartz 调度程序或触发器的 spring bean,以及一个用于存储状态的简单 isMasterNode 布尔成员。然后,我将公开 2 个 [限制访问] Web 服务调用:makeMaster 和 makeSlave,它们将分别调用 Scheduler.resume() 或待机/暂停。

最后,最大的问题是如何&根据您确定的另一个节点已“崩溃”。

如果您使用硬件负载平衡器来管理此操作,则可以将其配置为在新的“主”节点上调用“makeMaster”WS,该节点又调用 Scheduler.resume() 或类似的方法。

I think there's a few aspects to this question.

Firstly, Quartz has API methods for pausing and resuming the Scheduler, or even individual triggers and jobs

e.g.
http://www.jarvana.com/jarvana/view/opensymphony/quartz/1.6.1/quartz-1.6.1-javadoc.jar!/org/quartz/Scheduler.html#standby()

I would create a spring bean with a reference to the Quartz scheduler or trigger, and a simple isMasterNode boolean member for storing state. I'd then expose 2 [restricted-access] web service calls: makeMaster and makeSlave, which will call Scheduler.resume() or standby/pause, respectively.

Finall, the big question is how & with what you determine that another node has 'crashed'.

If you're using a hardware loadbalancer to manage this, you could configure it to call the 'makeMaster' WS on the new 'primary' node, which in turn calls Scheduler.resume() or similar.

hth

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文