一旦所有子演員完成處理,如何終止演員系統呢?我試圖使用以下內容:system.awaitTermination
和system.shutdown
。結果並非如預期那樣。阿卡終結演員系統
Q
阿卡終結演員系統
3
A
回答
5
參與者實際上並沒有「完成他們的處理」 - 他們仍然會在系統中等待事件處理。
因此,爲了制止它,你實際上必須明確地處理所有演員完成他們的工作的情況,例如,主演員期望演員在工作完成時向其發送消息,並且如果所有演員都已完成任務,關閉系統。
我會推薦閱讀nice article by Derek Wyatt(並且實際上閱讀他的書以及)標準的東西。有一個bit more advanced pattern由同一個作者在同一個網站上。
0
//這是我做到的。
helloActor ! PoisonPill.getInstance // send this to all ActorRef in ActorSystem
while (!helloActor.isTerminated) { // check each ActorRef is terminated
println("sleep")
Thread.sleep(100)
}
actorSystem.shutdown
相關問題
- 1. 終止一個揮舞阿卡演員
- 2. 阿卡演員Testkit
- 3. 在阿卡演員
- 4. 從阿卡演員
- 5. 如何監控系統演員終止
- 6. 遠程Akka演員系統的終止
- 7. 阿卡演員isTerminated棄用
- 8. 阿卡關閉TCP演員
- 9. 阿卡和單身演員
- 10. 如何終止一個懸掛的阿卡演員?
- 11. 阿卡演員選舉與演員的差異
- 12. 在阿卡,你如何在演員中創建兄弟演員
- 13. 如何從演員內部獲得阿卡演員的名字?
- 14. 阿卡演員和監督兒童演員
- 15. 防止阿卡片演員重新啓動兒童演員
- 16. Akka演員系統控制
- 17. 通用Akka演員系統
- 18. 阿卡HTTP +演員+圓滑的PostgreSQL
- 19. 阿卡演員的線程管理
- 20. 如何創建最小阿卡演員?
- 21. 阿卡ActorRef正在與空演員
- 22. 阿卡演員的簡單解釋
- 23. 阿卡:演員的組合和代理
- 24. 阿卡演員定製監事
- 25. 瞭解阿卡演員的線程
- 26. 阿卡演員的孩子的煩惱
- 27. 爲阿卡演員艙壁策略
- 28. 阿卡得到類型演員
- 29. 阿卡和演員在集羣
- 30. 阿卡演員阻止郵件
請注意:如阿卡2.4的,你應該使用'ActorSystem.terminate()'代替'ActorSystem.shutdown()':[發佈說明](http://doc.akka.io/docs /akka/snapshot/project/migration-guide-2.3.x-2.4.x.html#Actor_system_shutdown) – 203
@ 203是的,我發現你不應該在演員的系統上執行await Termination,因爲它本質上是一個僵局:-) – abatyuk