gpt4 book ai didi

java - 在多节点环境中仅触发一次调度作业

转载 作者:行者123 更新时间:2023-12-02 11:47:13 25 4
gpt4 key购买 nike

我正在使用 Docker swarm 模式来运行 Java(Spring Boot)应用程序的多个实例,并且我想每天运行调度作业两次,但它只需要由一个应用程序实例触发。

是否有任何机制可以配置 Spring Boot 应用程序和 Docker swarm 以仅运行该计划任务一次?

我在 Jive 属性中看到过:

<property name="allNodes" value="false"/>

现在我想知道是否可以在我的基础设施上做一些类似的事情。

应用程序实例位于同一网络中,因此我认为网络发现不会成为问题。

最佳答案

您能否创建一个节点作为主节点,并且计划的作业将仅在主节点中运行。发生故障时,其他节点将升级并成为主节点,以便有资格运行该作业。

或者你可以创建一个分布式锁(Hazelcast支持分布式锁)。每个节点都会调用tryLock()。节点获胜将允许运行作业。

关于java - 在多节点环境中仅触发一次调度作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48114257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com