我的印象是,与外部 ActorSystem
与Akka演员沟通的唯一方法是通过Inbox
。但是我刚发现this snippet from Akka's own documentation显示:
greeter.tell(new WhoToGreet("akka"), ActorRef.noSender());
inbox.send(greeter, new Greet());
那是哪个?实际上是否可以直接tell
来自外部世界的演员,或者Typesafe有没有粗心的实习生为他们写文档?!?
如果有可能,那么你什么时候应该这样做,何时应该使用Inbox
?例如,一种方法是“即发即忘”异步/非阻塞和其他同步/阻塞?
答案 0 :(得分:1)
您可以安全地从演员外部发送消息。 Akka将填写虚拟发件人。您将无法收到任何回复(尽管您可以使用ask
)。
答案 1 :(得分:1)
Inbox
是relatively recent Actor DSL API的一部分,它是#34;在创建演员的常用方法之上的一些不错的糖#34;。您可以使用标准方式创建/与演员通信或使用Actor DSL。他们都是异步的。 Actor DSL非常适合创建一次性演员,其生命周期是一种方法。在Scala中,DSL语法的优势更加明显。