28

演员向其父母发送消息的方法是什么?

我正在使用 Akka 2.2

4

3 回答 3

40

你正在寻找

getContext().parent()

它给了你父级的 ActorRef,所以你可以做

getContext().parent().tell(...)
于 2013-07-25T09:55:11.207 回答
18

在 Akka 2.4 中,您必须context.parent在 Actor 内部进行操作以获取其父 Actor 引用。之后,您可以像以前一样向它发送消息(context.parent ! "hello")。

于 2016-04-17T18:07:55.213 回答
0

应该注意的是,例如对于通过搜索找到这个问题的任何人,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 没有任何义务接受您发送的消息。

于 2020-12-11T16:02:37.890 回答