Scala中的演员参考

问题描述

/user/master/"+startID/user/master/*有什么区别? 我假设*表示StartRouteProcess消息将发送给所有参与者。这个对吗? 而/user/master/"+startIDTask消息与给定的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

将向所有同级(包括当前演员)发送味精。

所以你是对的。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...