在Akka Java actor模型中,如果我有一个RoundRobinRouter,当调用它的tell()
方法时,我希望路由器(作为主)使用非默认构造函数创建子actor,因为我需要传入一些参数。我怎么能这样做?
我知道我可以使用Props
使用非默认构造函数的actor,但是当主actor是路由器时它是如何使用的?
谢谢!
答案 0 :(得分:5)
构建路由器中的道具是该路由器路由的道具,而不是路由器本身。
您可以简单地执行以下操作:
system.actorOf(new Props(new UntypedActorFactory() {
public UntypedActor create() {
return new MyActor("foo", "bar");
}
}).withRouter(...))
并且所有路由都是MyActor类型,并且具有名为。
的特定构造函数你可以用通常的道具做任何事情。有关详细信息,请参阅The Akka Docs