在 Akka Java 演员模型中,如果我有一个 RoundRobinRouter,当它的tell()
方法被调用时,我希望路由器(作为主人)创建具有非默认构造函数的子演员,因为我需要传入一些参数。我怎样才能做到这一点?
我知道我可以使用具有非默认构造函数的参与者Props
,但是当主参与者是路由器时如何使用它?
谢谢!
在 Akka Java 演员模型中,如果我有一个 RoundRobinRouter,当它的tell()
方法被调用时,我希望路由器(作为主人)创建具有非默认构造函数的子演员,因为我需要传入一些参数。我怎样才能做到这一点?
我知道我可以使用具有非默认构造函数的参与者Props
,但是当主参与者是路由器时如何使用它?
谢谢!
Router 构造中的 props 是该路由器的 routee 的 props,而不是路由器本身。
您可以简单地执行以下操作:
system.actorOf(new Props(new UntypedActorFactory() {
public UntypedActor create() {
return new MyActor("foo", "bar");
}
}).withRouter(...))
并且所有路由都将是 MyActor 类型,并调用了特定的构造函数。
你可以用道具做任何你通常可以做的事情。有关更多信息,请参阅Akka 文档