Akka sender()指向来自actor系统的消息的死信
请看下面的代码并解释为什么我的输出指向死信。Akka sender()指向来自actor系统的消息的死信,akka,actor,Akka,Actor,请看下面的代码并解释为什么我的输出指向死信。 类DemoActor扩展了Actor{ def接收={ 案例“foo”=>println(发送方()) } } 对象主应用程序{ val actorSystem=actorSystem(“DemoSystem”) val demoActorRef=actorSystem.actorOf(道具[DemoActor]) demoActorRef!“foo” } 输出: 演员[akka://DemoSystem/deadLetters] 提前感谢这是
类DemoActor扩展了Actor{
def接收={
案例“foo”=>println(发送方())
}
}
对象主应用程序{
val actorSystem=actorSystem(“DemoSystem”)
val demoActorRef=actorSystem.actorOf(道具[DemoActor])
demoActorRef!“foo”
}
输出:
演员[akka://DemoSystem/deadLetters]
提前感谢这是因为actor系统没有可以发布回复的邮箱 发送者引用用于发送回复,而被联系的参与者不需要知道是谁调用了它,也不需要知道ask机制
在实践中,您可以通过尝试从另一个参与者与系统进行相同的调用来看到这一点,并且当从另一个参与者调用时,您将看到发送方引用是有效的。当然,这是因为您不是从另一个参与者调用它,因此无处可回复?(因此,使用发送者是不明智的)因此,只有当从另一个参与者a调用参与者B时,发送者()才是参与者a。这正确吗?