我正在使用 scala akka actor 模型。我有一个父 Actor 创建 n 个子 Actor 。童 Actor 们首先互相交谈,然后将答案报告给 Actor 大师。但我无法让它适用于报告部分。代码结构如下:
class Master(n:Int) extends Actor{
val system =ActorSystem("mysystem")
for(i <- 1 to n){
val child=system.actorOf(Props(new Node),name=i.toString)
}
... code let child actor talk with each other ...
def receive={
case _=>"received"
}
}
class Node extends Actor{
def receive={
case => ... some code talking with each other...
var master=context.actorSelection("../Master")
master ! "talk back to master"
}
}
def main() {
val Master=system.actorOf(Props(new Master(10)),name="Master")
}
最佳答案
让主站将其自引用传递给节点。相关更改的行是:
... // In Master:
val child=context.actorOf(Props(new Node(self)),name=i.toString)
...
... // Definition of Node:
class Node(master: ActorRef) extends Actor{
...
//var master=context.actorSelection("../Master") - this line no longer required.
... //etc.
关于java - 如何在scala akka中找到父 Actor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33327411/