Java 在群集中仅运行一次akka调度程序

Java 在群集中仅运行一次akka调度程序,java,akka,akka-cluster,Java,Akka,Akka Cluster,我已经在我的播放应用程序中配置了Akka调度程序。它工作得很好,但现在的问题是,我有两个相同应用程序的实例在集群中运行。所以调度程序也运行了两次。我希望整个应用程序只运行一次。阿克卡是否有实现这一目标的规定。此外,与java相关的帮助也将非常有用。为此,您需要使用模块Akka Cluster Singleton: 该模块提供了在整个集群中只有一个参与者的功能。 下面的代码解释了如何在Scala中执行此操作,我认为Java应该非常类似: context.actorOf(ClusterSinglet

我已经在我的播放应用程序中配置了Akka调度程序。它工作得很好,但现在的问题是,我有两个相同应用程序的实例在集群中运行。所以调度程序也运行了两次。我希望整个应用程序只运行一次。阿克卡是否有实现这一目标的规定。此外,与java相关的帮助也将非常有用。

为此,您需要使用模块Akka Cluster Singleton:

该模块提供了在整个集群中只有一个参与者的功能。 下面的代码解释了如何在
Scala
中执行此操作,我认为
Java
应该非常类似:

context.actorOf(ClusterSingletonManager.props(YourScheduler.props, PoisonPill, ClusterSingletonManagerSettings(context.system)), "singletonScheduler")
val singletonScheduler = system.actorOf(ClusterSingletonProxy.props(
  singletonManagerPath = "/user/app/singletonScheduler",
  settings = ClusterSingletonProxySettings(system)),
  name = "singletonSchedulerProxy")