gpt4 book ai didi

java - 集群上 weblogic 的 EJB 计时器的替代方案

转载 作者:行者123 更新时间:2023-12-01 12:56:05 25 4
gpt4 key购买 nike

最近我遇到了一个要求,我必须向应用程序提供一个自定义 jar,并且该 jar 将包含定期查询数据库并为使用它们的特定应用程序获取消息(记录)的线程。例如,应用程序 A 使用此 jar,那么该 jar 中的线程将仅获取应用程序 A 的所有消息。数据库是应用程序之间的共享数据库。

这对于独立应用程序来说效果很好,但对于部署在企业应用程序服务器(在我的例子中是 weblogic)中的集群上的应用程序来说,这会失败,因为集群上的所有节点都在自己的 JVM 中运行,并且每个节点都会为该应用程序生成一个监听器线程。相同的应用程序。因此,可能存在两个线程同时运行并获取相同记录的情况,并且会出现双重处理。无法使用同步,因为这会导致性能瓶颈。

我无法使用单例定时器 EJBS。听说过 Workmanager,但网上没有足够的例子。我使用的是spring核心框架。

如果大家能提出任何建议,那就太好了。

谢谢。

最佳答案

首先,如果您正在处理 JavaEE,请停止考虑线程,它应该为更高层次的思维方式提供更高层次的抽象。

  1. JavaEE 7 提供 ManagedScheduledExecutorService
  2. Quartz 在这种情况下效果很好 - JavaEE 集群中只有一个节点将执行该作业

关于java - 集群上 weblogic 的 EJB 计时器的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23882004/

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