scala – 动态地将路由添加到路由器actor
发布时间:2020-12-16 19:03:43 所属栏目:安全 来源:网络整理
导读:你会知道一个很好的方法在Akka / Scala添加/删除路由到Broadcaster路由器? 我一直在看Resizer – 但是不能满足我的需要(我看不出如何明确地要求调整大小调整大小(添加路径),并删除它似乎你需要发送毒药给演员,然后删除). 到目前为止,我有一个路由器与ActorR
你会知道一个很好的方法在Akka /
Scala添加/删除路由到Broadcaster路由器?
我一直在看Resizer – 但是不能满足我的需要(我看不出如何明确地要求调整大小调整大小(添加路径),并删除它似乎你需要发送毒药给演员,然后删除). 到目前为止,我有一个路由器与ActorRef的列表,我发送AddRoutee和RemoveRoutee消息…. 我的业务案例:我有一个演员从网络(通过代理)获取数据,并且需要将这些数据发送到独立的角色并行进行处理.由于收件人(DAG)的图形性质,图形可以在运行时演化,顶点/边缘被修改,因此需要添加和删除路线 必须有一个更干净的方法来做到这一点. 感谢指针. 代码示例我希望Akka处理: 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) } } 解决方法
每当你发现自己在路由器中缺少一个功能时,开始思考另一个方向是一个非常好的时机:你出现的演员代码有什么问题?除非你需要每秒路由超过几百万条消息(这是不太可能给出你的描述),所以这个演员正是正确的解决方案.路由器是一种非常专门的构造,不能用作替代;只有当他们完全符合您的要求,才能使用它们,并且您已经对基本的演员进行了基准测试.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |