java - 如何在scala akka中找到父 Actor

标签 java scala akka actor

我正在使用 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/

相关文章:

java - JDBC:ResultSet 的默认可持有性

java - Cucumber-junit-platform-engine 中的特征文件发现

java - 使用访问权限和私钥访问google云存储java

akka - 设计模式 : how to implement a chain of actors processing a single logical message

java - 自定义 'HTTP GET style' 请求的正则表达式

java - IllegalStateException in retryWhen with ReadStreamAdapter

java - Scala 和 Java 的 future 显然有意想不到的互动

scala - 无法在没有空代码块的情况下用没有方法实例化特征

akka - Akka Cluster Client 能否向不在初始联系中的集群节点发送消息?

scala - 如何使用 Akka 实现 REST Web 服务?