Akka问和告诉模式之间的区别?

时间:2016-11-07 06:59:15

标签: scala akka

我在阅读akka文档后发现:Ask会发送消息并

返回未来并等待超时。同样,Tell将发送消息并

立即返回。我发现两者都相同,因为在这两种情况下请求都是

异步生成,必须等待响应。实际上是什么?

返回?在哪种情况下使用Ask比使用Tell更好,反之亦然?

2 个答案:

答案 0 :(得分:1)

当你的演员Ask()等待另一个演员等待回复(你提到的未来)并最终暂停执行,直到Future值可用。 当你的演员Tell()给另一个演员时,它只是抛出了消息,不期待一个回复并继续执行。

所以第一个更适合演员之间的信息请求,另一个更适合发送信息。由您来决定您正在开展的项目的最佳选择。

答案 1 :(得分:0)

当你在演员中询问()时,发件人将等待Future响应 当你在演员中使用 Tell()时,你还必须发送回复将发送到的ActorRef。