[英]How to send a message to an actor's parent in Akka Classic?
演員向其父級發送消息的方法是什么?
我正在使用 Akka 2.2
你正在尋找
getContext().parent()
它為您提供了父級的 ActorRef,因此您可以執行
getContext().parent().tell(...)
在 Akka 2.4 中,您必須在 actor 內執行context.parent
以獲取其父 actor 引用。 之后,您可以像以前一樣向它發送消息( context.parent ! "hello"
)。
應該注意的是,例如,對於通過搜索遇到這個問題的任何人,Akka 2.6 引入了一個類型化 API,用於與參與者交互和定義參與者,並且從 2.6 版開始的文檔指導使用類型化 API。
在使用類型化 API 定義的 actor 中, ActorContext
不再直接向父 actor 提供ActorRef
,因此上面的答案將不起作用。 請參閱此問題以了解 Akka Typed 中的 (Scala) 解決方案。 類似的 Java API 將是:
import akka.actor.typed.javadsl.Adapter
ActorRef parent = Adapter.toClassic(getContext()).parent()
請注意,這是一個無類型的ActorRef
:您可以向父 actor 發送任何消息,但父 actor 沒有任何義務接受您發送的消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.