Akka的子actor默认返回的是void类型,无法直接接收返回值。但是可以使用异步消息传递机制来实现消息的收发。 示例代码如下:
// 创建一个子actor val childActor = context.actorOf(Props[ChildActor], "child-actor")
// 向子actor发送消息 childActor ! MessageToChildActor(message = "Hello Child Actor")
// 定义子actor class ChildActor extends Actor {
import context._
// 子actor接收消息的方法 def receive = { case MessageToChildActor(message) => // 收到消息后,打印消息并回复父actor println(s"Message Received in Child Actor: $message") sender() ! MessageFromChildActor(message = s"Hello Parent Actor, You sent me $message") } }
// 在父actor中收到来自子actor的消息 class ParentActor extends Actor {
import context._
def receive = { case MessageFromChildActor(message) => // 收到消息后,打印消息并完成后续操作 println(s"Message Received in Parent Actor: $message") //TODO: 进一步处理消息 } }
上一篇:Akka持久性:启动PersistentActor时出现问题:java.lang.IllegalArgumentException: 未配置默认的日志插件,请参见'reference.conf'