3
比方說,我有一個地區演員,每個地區都有一定數量的人在裏面。你如何向每個人廣播一條消息,知道人員名單可以隨時間變化,廣播路由器似乎是選擇,但問題是他們有最大數量的路由,並且我不能動態地追加人路由器。Akka(java),非阻擋廣播給所有的孩子
我的問題是:我知道有一個EventBus,我可以訂閱我的人員到事件總線,但我不希望他們收到發佈的每條消息,我希望他們接收該區域的消息。
現在在阿卡,我們必須創造一個路由器有一定數量routees的, 例如:
Router router = new router(person1, person2)
這是不好的,因爲在beggining有沒有人在該地區,我不不知道誰將加入我的地區。
有沒有一種方法,使一種動態路由器: 例如:
Region region = new region()
region.router = new Router()
Person person1 = new Person()
region.router.subscribe(person1);
region.router.tell("hello",null);
哦,我明白了,所以我可以只使用一個非類型化的演員作爲一個路由器。以及非常感謝很多 –
那麼是不是有任何其他方式來處理這個?因爲如果我們向父母發送毒丸,它會殺死其下的所有其他兒童演員。那麼akka使用什麼機制將消息發送給他們的孩子? – sYl3r
只有一種發送消息的機制,對於所有的ActorRefs來說都是一樣的。你可能會考慮不使用PoisonPill併爲你的特定問題創建更有意義的消息類型。 –