akka - 在 Akka Java actor 模型中,路由器可以使用非默认构造函数创建 actor 吗?

标签 akka actor default-constructor

在 Akka Java actor 模型中,如果我有一个 RoundRobinRouter,当调用它的 tell() 方法时,我希望路由器(作为主设备)使用非默认构造函数创建子 actor,因为我需要传入一些参数。我怎样才能做到这一点?

我知道我可以使用 Props 为具有非默认构造函数的 actor,但是当主 actor 是路由器时如何使用它?

谢谢!

最佳答案

构建路由器时的 props 是该路由器的路由对象的 props,而不是路由器本身。

您可以简单地执行以下操作:

system.actorOf(new Props(new UntypedActorFactory() {
    public UntypedActor create() {
      return new MyActor("foo", "bar");
    }
  }).withRouter(...))

所有的路由都将是 MyActor 类型,并调用特定的构造函数。

您可以使用 Prop 做任何您通常可以做的事情。欲了解更多信息,请参阅The Akka Docs

关于akka - 在 Akka Java actor 模型中,路由器可以使用非默认构造函数创建 actor 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12889490/

相关文章:

scala - Akka SLF4J logback 配置和使用

java - 谁提供了Java中的默认构造函数?编译器还是 JVM?

c++ - 构造函数中对默认构造函数的 undefined reference

scala - 如何改善reactive-kafka(Scala和Akka Streams)的缓慢性能?

scala - 按需 Actor 获取或创建

scala - akka 问题 Substream Source(EntitySource) 无法多次具体化

scala - 使用 Scala Actors 来创建像流水线一样的东西

scala - 如何制作 scala actor 'wait for the signal' 但不丢失任何消息?

python - Pykka:如何在 Actor 停止时取消其待处理消息队列