如何解决Scala中的演员参考
/user/master/"+startID
和/user/master/*
有什么区别?
我假设*表示StartRouteProcess
消息将发送给所有参与者。这个对吗?
而/user/master/"+startID
将Task
消息与给定的startID
case JoinNode =>
val startID = Nodelist(Random.nextInt(numJoined))
context.system.actorSelection("/user/master/" + startID) ! Task("Join",startID,Nodelist(numJoined),-1)
case BeginRouting =>
println("Node Join Finished.\n")
println("Routing started.")
context.system.actorSelection("/user/master/*") ! StartRouteProcess
解决方法
根据akka文档https://doc.akka.io/docs/akka/2.5/general/addressing.html#querying-the-logical-actor-hierarchy:
选择可以使用ActorSystem.actorSelection和ActorContext.actorSelection方法制定,并且确实支持发送消息:
context.actorSelection("../*") ! msg
将向所有同级(包括当前演员)发送味精。
所以你是对的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。