2

假设我有一个BackendApp作为 WAR 部署并部署到多个节点的。我将它部署到多个节点以实现高可用性。该应用程序使用 Quartz 来安排启动某些工作。假设其中一项作业每天只运行一次。

如果我将应用程序部署到 5 个节点,它将每天运行 5 次,每个节点上运行一次。

是否存在任何机制来编排某些只应在分布式/集群环境中运行一次而不是由集群中的每个应用程序实例运行的作业?

我确实找到了这篇文章,但它似乎是一种仅限于一个节点的解决方案:

永远不要在单独的机器上运行集群,除非它们的时钟使用某种形式的时间同步服务同步......

4

1 回答 1

0

您可以使用 JDBC 存储并将 clustered 设置为 true,确保所有节点都在同一个数据库上,并确保所有机器都有时间同步服务。

http://quartz-scheduler.org/documentation/quartz-2.x/configuration/ConfigJobStoreTX

于 2014-08-14T23:54:35.373 回答