您是否知道在Akka/Scala中添加/刪除路由到Broadcaster路由器的好方法?動態添加/刪除路由到路由器角色
我一直在尋找調整器 - 但不符合我的需求(我看不出如何明確要求調整大小來調整大小(添加路線)並刪除它似乎你需要發送一個毒丸給演員然後被刪除)。
到目前爲止,我有ActorRef列表的路由器,我送AddRoutee和RemoveRoutee消息....
我的商業案例:我有一個演員從網絡獲取數據(通過代理),並且它需要將這些數據分發給獨立的參與者並行處理。由於收件人(DAG)的圖形性質,圖形可以在運行時演變,頂點/邊緣被修改,因此需要添加和刪除路徑。
必須有一種更簡潔的方式來完成此操作。
感謝您的指點。
的代碼示例,我想阿卡處理:
class MDActor extends Actor {
@volatile var routees = Set[ActorRef]()
def receive = {
case ar: AddRoutee => routees = routees + ar.actorRef
case rr: RemoveRoutee => routees = routees - rr.actorRef
case msg => routees.foreach(r => r forward msg)
}
}
您能否提供一些更多的背景知道您的代碼中發生什麼情況會導致從路由器添加/刪除路由?這種信息將有助於提出解決方案。 – cmbaxter
在你的例子中,我建議使用Set [ActorRef]而不是List [ActorRef]來防止路由重複。並使用「前進」而不是「!」保留原始發件人。 –
謝謝。這是一個好主意。 – jts