akka ActorSystem进程如何从actor接收

问题描述 投票:0回答:1

我如何使进程使用ActorOf创建Actor,并允许Actor ping父进程。我的目的是允许参与者将信号发送到其父进程(ActorSystem主线程)以调用system.terminate。但是不知道如何执行此操作。这是snipit,但是,我不想从主要位置调用终止,而是从actor得到一个信号来调用终止。这可行吗?

object MyTest {
    def main(args: Array[String]): Unit = {
        println("test test")
        Thread.sleep(10000)
        val system = ActorSystem("HelloSystem")
        system.actorOf(TestActor.props("testactor"), name = "testactor")
        system.terminate()
    }
}

object TestActor {
    def props(conf: String): Props = Props(new TestActor(conf))
    case class AnswerMe(txt: String)
}

class TestActor(conf: String) extends Actor {
    import TestActor._
    override def receive: PartialFunction[Any, Unit] = {
        case AnswerMe(txt) => {
            println(s"$txt")
            ?? ! "answer"
        }
    }
}
scala akka actor actorsystem
1个回答
0
投票

我只是弄清楚自己。我将简单地将ActorSystem传递给actor,然后在actor中,它将调用system.terminate。然后它将退出父项。

© www.soinside.com 2019 - 2024. All rights reserved.