2017-02-09 63 views
1

當系統重新啓動時,context.children()調用將爲特定的父項返回零個子項。在重新啓動之前,context.children()返回父對象具有的子項的實際數量。Akka:如何在重新啓動時獲取兒童演員

有人可以讓我知道我們怎麼能得到重新啓動後的父母子女ActorRef?

我的使用情況是:

重啓之前,有讓說,5個孩子家長的。現在,我想計算表現並計算表現,我需要所有這5個孩子的參與。因此,重啓後,我可以將同樣的信息發送給所有的孩子,之後孩子們會工作並回應父母。但是,重啓後,我甚至不知道孩子是誰。那麼,解決這類問題的最好方法是什麼?

回答

0

其中一種方法是使父代執行器保持其狀態,並將其作爲子代碼列表。這樣,當系統重新啓動並重新創建父項時,它將恢復其狀態。

0

「父母 - 孩子」行爲者關係的唯一問題是孩子是一個持久行爲者,因爲當你重新啓動你的應用時,'父母 - 孩子'關係本身就會丟失。基本上,這種關係本身並不是持久的。

所以flare提到你需要讓你的父母演員持久,並保持所有的孩子的名字。然後在重新啓動期間,您的永久父母必須通過context.actorOf(...)

基於存儲的ID(姓名)手動重新創建所有這些「親子」關係