簡體   English   中英

如何在 Akka Classic 中向演員的父母發送消息?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM