gpt4 book ai didi

java - 避免集群环境中 Spring Batch 作业的并发

转载 作者:行者123 更新时间:2023-12-02 03:20:59 28 4
gpt4 key购买 nike

我想确保 Spring 作业在仍在运行时不会再次启动。这在单个 JVM 环境中是微不足道的。

但是,我如何在集群环境中实现这一点(更具体地说,在 JBoss 5.1 中 - 我知道有点过时;如果后续版本存在解决方案,我也会对这些感兴趣)。

因此,它应该是一种跨所有集群节点的单例模式。

我正在考虑使用数据库锁或消息队列。有没有更简单/性能更好的解决方案?

最佳答案

您需要同步彼此互不了解的线程,因此最简单的方法是在公共(public)位置共享一些信息。有效的替代方案是:

  • 共享数据库
  • 共享文件
  • 保存批处理状态的外部 Web 服务

如果您更喜欢使用共享数据库,请尝试使用类似 Redis 的数据库来提高你的表现。它是一个内存数据库,在磁盘上具有持久性,因此访问批处理过程的状态应该足够快。

关于java - 避免集群环境中 Spring Batch 作业的并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39617054/

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