问题描述
/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
将向所有同级(包括当前演员)发送味精。
所以你是对的。