Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala Akka中的Ask模式_Scala_Akka - Fatal编程技术网

Scala Akka中的Ask模式

Scala Akka中的Ask模式,scala,akka,Scala,Akka,我有一个关于阿克卡提问模式的问题 我正在使用应用程序中的ask模式调用一个参与者。我的应用程序是一个普通类(不是参与者本身): 但是,上面调用的参与者调用第二个参与者,如: secondActor ! msg(sender) 第二个参与者返回实际响应,如: originalSender ! responseMsg 所以基本上涉及到一个间接寻址,当Actor1调用Actor2时,它使用 我测试了代码,它运行正常。但是我不确定上面的代码是否正确 那么,我是否应该始终在actor1和actor2调

我有一个关于阿克卡提问模式的问题

我正在使用应用程序中的ask模式调用一个参与者。我的应用程序是一个普通类(不是参与者本身):

但是,上面调用的参与者调用第二个参与者,如:

secondActor ! msg(sender)
第二个参与者返回实际响应,如:

originalSender ! responseMsg
所以基本上涉及到一个间接寻址,当Actor1调用Actor2时,它使用

我测试了代码,它运行正常。但是我不确定上面的代码是否正确


那么,我是否应该始终在actor1和actor2调用之间使用
,并尝试
管道传输结果?或者我可以使用
在中间调用之间以及当我想返回到原始调用方时,只需向我传递的引用发送一条消息?

您当前的方法非常好。事实上,最好使用
tell
)进行参与者之间的交流。从:

使用
ask
会对性能产生影响,因为需要跟踪超时时间,因此需要有某种东西将
承诺
连接到
ActorRef
中,并且还需要通过远程处理来访问它。因此,对于性能,始终首选
tell
,只有在必要时才选择
ask

[Tell]是发送消息的首选方式。无阻塞等待消息。这提供了最佳的并发性和可伸缩性特征


根据文档,没关系:ActorRefs可以通过消息传递在参与者之间自由共享。请查看文档以了解更多详细信息。
originalSender ! responseMsg