3

我正在寻找一种方法来正确集群使用计时器的 Java EE 应用程序。通过适当的集群,我的意思是我正在寻找以下功能:

  1. 计时器执行应回退到其他集群节点。我的意思是节点 A 上的一些 EJB 创建了一个计时器:
    timerService.createIntervalTimer(/* every 10 seconds */)
    然后离线(崩溃)超时调用将开始在节点 B 上触发(部署相同应用程序的其他一些集群节点)

  2. 计时器应该可以跨集群访问。我的意思是,如果 EJB X 创建了一个在节点 A 上运行的计时器,那么在集群节点 B 上运行的同一个 EJB X(显然是同一个类)可以通过执行类似的操作来取消该计时器
    timerService.getTimers().iterator().next().cancel();

  3. 计时器执行可以分布在整个集群中 - 例如,如果我的超时方法是一些我没有在 10 秒内完成的长时间计算(当计时器下一次到期时),我希望下一次超时调用发生在其他一些上,而不是 - as-busy 节点。

显然这是我理想的一组功能,但任何指向正确方向的指针都会受到欢迎。

4

0 回答 0