14

我如何“询问”应该由其路径提供的演员?

ask(context.actorSelection("../foo"), GetInfoMessage)

......导致 anActorSelection但只有ActorRefs 可以“询问”。或者,context.actorFor返回一个ActorRef,但根据文档不推荐使用此函数。

4

2 回答 2

15

从 Akka 2.2.1 开始,您可以使用从选择ActorSelection.resolveOne中获取ActorRef

http://doc.akka.io/api/akka/2.2.1/index.html#akka.actor.ActorSelection

然后你可以像往常一样询问 ActorRef

于 2013-09-10T15:21:21.230 回答
8

稍后在该页面上,您将看到

要获取绑定到特定参与者生命周期的 ActorRef,您需要向参与者发送消息,例如内置的识别消息,并使用参与者回复的发送者引用。

所以这是一个三步过程。使用actorSelection,然后发送Identify,然后ask

不过,这仅适用于 Akka 2.2,因此在 Akka 2.1 或更早版本中,您仍然需要使用actorFor.

基本原理在2.2 迁移指南中进行了解释。

于 2013-04-19T13:40:17.583 回答