2

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

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

谢谢!

4

1 回答 1

5

Router 构造中的 props 是该路由器的 routee 的 props,而不是路由器本身。

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

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

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

你可以用道具做任何你通常可以做的事情。有关更多信息,请参阅Akka 文档

于 2012-10-16T07:55:55.957 回答