tell() 如何在 Akka actor 系统中工作



我在这里和这里看文档有点困惑

receive() 是一个不接受任何参数并返回 Partial 函数的方法。 tell() 是一种返回 Unit 并"发送"消息的方法。现在,要在我的理解中处理消息,必须发生两件事:

  1. receive()应通过 tell 调用
  2. 消息被传递给由receive()返回的部分函数

现在,如果将部分函数返回到使用tell()的位置,那么基于消息的通信如何工作?为什么操作不是在演员内部执行的?

因为它

是内部的,所以没有文档,但你可以在这里自己签出源代码:https://github.com/akka/akka/blob/master/akka-actor/src/main/scala/akka/actor/ActorCell.scala。从 tell 如何将消息发送到邮箱、如何从中提取消息、如何调用接收等开始的所有内部都在这里。

希望它能回答你的问题。

最新更新