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

时间:2012-10-15 04:56:15

标签: akka actor default-constructor

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

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

谢谢!

1 个答案:

答案 0 :(得分:5)

构建路由器中的道具是该路由器路由的道具,而不是路由器本身。

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

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

并且所有路由都是MyActor类型,并且具有名为。

的特定构造函数

你可以用通常的道具做任何事情。有关详细信息,请参阅The Akka Docs