演员向其父母发送消息的方法是什么?
我正在使用 Akka 2.2
你正在寻找
getContext().parent()
它给了你父级的 ActorRef,所以你可以做
getContext().parent().tell(...)
在 Akka 2.4 中,您必须context.parent
在 Actor 内部进行操作以获取其父 Actor 引用。之后,您可以像以前一样向它发送消息(context.parent ! "hello"
)。
应该注意的是,例如对于通过搜索找到这个问题的任何人,Akka 2.6 引入了一个类型化 API 用于与参与者交互和定义参与者,并且从 2.6 版开始的文档指导使用类型化 API。
在使用类型化 API 定义的参与者中,ActorContext
不再直接向ActorRef
父参与者提供 an,因此上述答案将不起作用。有关 Akka Typed 中的(Scala)解决方案,请参阅此问题。类似的 Java API 将是:
import akka.actor.typed.javadsl.Adapter
ActorRef parent = Adapter.toClassic(getContext()).parent()
请注意,这是一个无类型的ActorRef
:您可以向父 Actor 发送任何消息,但父 Actor 没有任何义务接受您发送的消息。