我正在學習akka,我不知道如何最好地組織,獲取/創建我的演員。akka.net管理演員hiearchy和創建/獲取演員
現在我有一個像
Department (1000s) can each have many items (10000s) and each item has properties and work that can be done to it
如果我想執行的C項任務是在3系是什麼做到這一點的最佳方式的設置?
我目前已經設置了一切,所以我必須告訴部門3一條消息,然後在部門3的演員,我會告訴項目C演員相同的消息。
我看到這個問題的任何時候我想告訴項目我必須處理2個地方(部門和項目)的消息。這對我來說感覺不對,但也許那是因爲我不瞭解這種模式。
我也希望這是有狀態的,所以我想讓演員堅持下去。這給我帶來了另一個挑戰。我如何知道部門3是否已加載(並且一旦我有部門3,我如何知道是否有已初始化的項目B的演員)?我可以在Context上使用Selection方法,但是我必須檢查它的身份以確定它是否真的存在。我所做的是維護一個加載的部門清單,然後檢查我的部門是否在該清單中,然後獲得部門或創建它。
通過這個過程,我介紹了另一位演員,負責管理我所有部門的列表。現在,我想要發送給我的項目B演員的所有消息都必須經過管理所有部門的演員,部門3演員,最後到項目B演員。現在感覺比以前更糟糕了。
現在我也有部門主管了解所有加載所有消息必須經過的部門(部門目標消息和項目目的地消息)。在這一點上,所有的消息流經這個單身演員,我現在擔心性能和可維護性。
所以我的問題是:是否有一個更好的方式來保持有狀態的這個父/子關係,並且能夠發送消息到一個Item而不知道它所在的Department是否被加載,或者它是否被加載本身?