如何“询问”应该由其路径提供的演员?
ask(context.actorSelection("../foo"), GetInfoMessage)
...会产生ActorSelection
,但只能{问} ActorRef
。
或者,context.actorFor
会返回ActorRef
,但根据documentation不推荐使用此功能。
答案 0 :(得分:15)
自Akka 2.2.1起,您可以使用ActorSelection.resolveOne
从选区中获取ActorRef
:
http://doc.akka.io/api/akka/2.2.1/index.html#akka.actor.ActorSelection
然后你可以像往常一样询问ActorRef
答案 1 :(得分:8)
稍后在该页面上您将看到
要获取绑定到特定actor的生命周期的ActorRef,您需要向actor发送消息(例如内置Identify消息)并使用actor的回复的发送者引用。
所以这是一个三步过程。使用actorSelection
,然后发送Identify
,然后发送ask
。
这仅适用于Akka 2.2,因此在Akka 2.1或之前您仍然需要使用actorFor
。
理由在2.2 Migration Guide中解释。