Akka:当你告诉ActorRef时会发生什么,并且它希望你问?

时间:2013-08-07 03:28:29

标签: scala akka actor future

我有以下内容:

val future = myActor ? Message

在我的演员中,我收到的消息是这样的:

sender ! Response

如果我执行以下操作并忽略响应,是否会产生负面影响?

myActor ! Message

也许我只是遗漏了文档中的内容。它是否像返回值的方法一样,调用者不会将返回值赋给任何东西?如果我从另一个演员调用那个调用会导致一些奇怪的线程问题或内存泄漏吗?我的单元测试似乎没有受到影响,但它是一种人为的设计。我希望我只是过度思考这个问题,也许我无法找到答案,因为这是一个愚蠢的问题,没有一个心智正常的人会问。

1 个答案:

答案 0 :(得分:7)

临时轻量级演员(PromiseActorRef)接收到询问模式Response

如果myActor ! Message,则范围内应隐式ActorRefResponse将被发送到此隐式ActorRef。在您明确阅读之前,不会对此消息进行垃圾回收。

如果范围ActorRef中没有隐式Actor.noSender,则Response将被转发到系统的deadLetters。

如果你从另一个演员发出这个电话,这个Response将被传递给另一个演员的消息框。