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

His*_*His 2 default-constructor actor akka

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

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

谢谢!

Bjö*_*son 5

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

你可以简单地做一些事情:

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

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

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