如果我在Akka中使用context()。actorOf()創建一個actor,我找回一個有效的ActorRef。然而,如果我這樣做,但使用actorFor創建一個ActorRef並且我知道該actor將出現在該路徑中,我不可靠地獲得有效的ActorRef。我怎麼知道演員已經成功註冊?在Akka中,我如何知道在actorOf()註冊後,演員何時可以使用?
在上面的描述中,我可以簡單地使用從actorOf()返回的ActorRef。然而,在我的實際案例中,我創建了一個自己註冊了一個小孩演員的演員,並且我需要解決這個問題,所以一般問題是「我如何等待/註冊以獲知已經在已知路徑中註冊的演員? 」。
就兩個第一點達成一致意見,演員可能永遠不會在那裏,可能在你有機會使用它之前就離開了。首先,我想我真正想要的是如何正確引導一個基於actor的系統。我應該用一個Start消息來問()一個代表一個子系統的actor,以確保它和它的子系統都準備好了嗎? – SoftMemes
將您的系統創建爲Actor的圖形。然後,您可以使用DeathWatch和系統的eventStream組合來發布活着/死亡。有一個LifeWatch也會很有趣。但風險在於,如果演員永遠不會活着,它會泄漏記憶。 –
當使用akka.testkit時,你發送一條消息給立即實例化的actor ..你需要一種方法來知道它已經準備好了。 – KitAndKat