sender()指向来自actor系统的消息的死信

时间:2017-01-04 14:01:19

标签: akka actor

请查看以下代码并解释为什么我的输出指向deadLetters。

class DemoActor extends  Actor {
  def receive = {
    case "foo" => println(sender())
  }
}


object Main extends App {
  val actorSystem = ActorSystem("DemoSystem")
  val demoActorRef = actorSystem.actorOf(Props[DemoActor])
  demoActorRef ! "foo"
}

输出:

Actor[akka://DemoSystem/deadLetters]

提前致谢

1 个答案:

答案 0 :(得分:3)

这是因为演员系统没有可以发布回复的邮箱。

发件人参考用于发送回复,而联系的参与者无需知道谁调用了回复,以及询问机制。

你可以通过尝试来自另一个演员与系统的相同调用来实际看到这一点,并且当从另一个演员调用时你会看到发件人引用是有效的。