gpt4 book ai didi

java - quartz 调度器集群时间同步

转载 作者:搜寻专家 更新时间:2023-11-01 03:27:23 25 4
gpt4 key购买 nike

我查看了 Quartz 文档,似乎无法找到问题的明确答案:如果我在集群环境中使用 Quartz Scheduler 但机器不同步会发生什么(我们将使用 JobStoreTX )? Quartz 会触发多个作业吗?它只会通过锁定数据库行条目来触发一个吗?

最佳答案

不幸的是,我不认为它被记录在案,但我相信结果并没有那么具有破坏性和错误性。

集群中的每个 Quartz 调度程序实例每隔几秒轮询一次数据库,试图找到要触发的新作业(我认为默认情况下它会搜索下一个预定时间在 now - 30now + 60 秒 - 但这是无关紧要的,取决于配置)。此操作显然在集群中是安全的,因为很可能有多个实例同时轮询新作业。

如果服务器时间在集群中不同步,假设其中一台服务器有 future 的时钟。该服务器认为它比实际晚了,所以它过早地获取和启 Action 业 - 或者至少比所有其他服务器都早。这意味着单个服务器将运行更多(如果不是全部)作业,从而从集群的其余部分窃取工作。这本身并不安全,但会导致集群负载不对称。

我正在考虑提出一个问题,建议在所有服务器中使用数据库时间来避免这些问题。然而人气并增加使用外部时间源的复杂性使其成为一个坏主意。

关于java - quartz 调度器集群时间同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9998618/

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