Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.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
Java 阿克卡-如何得到几个演员的结果?_Java_Akka - Fatal编程技术网

Java 阿克卡-如何得到几个演员的结果?

Java 阿克卡-如何得到几个演员的结果?,java,akka,Java,Akka,我想知道是否有什么最佳实践可以向两个不同的参与者发送两条消息 然后等待它们全部执行(当然是得到结果),以便继续执行 i、 例如: send message to actor 1 send message to actor 2 List<results> = wait.all(actor1,actor2) 向参与者1发送消息 向参与者2发送消息 List=wait.all(actor1、actor2) 您可能正在寻找与未来相结合的方法。顺序或的理解: import akka.patt

我想知道是否有什么最佳实践可以向两个不同的参与者发送两条消息

然后等待它们全部执行(当然是得到结果),以便继续执行

i、 例如:

send message to actor 1
send message to actor 2
List<results> = wait.all(actor1,actor2)
向参与者1发送消息
向参与者2发送消息
List=wait.all(actor1、actor2)

您可能正在寻找与
未来相结合的方法。顺序
的理解:

import akka.pattern.ask

case object Request

implicit val timeout = Timeout(5 seconds) // needed for `?` below

// Ask your actors for a result
val f1 = actorA ? Request
val f2 = actorB ? Request
val f3 = actorC ? Request

// for-comprehension
(for {
    x <- f1
    s <- f2
    d <- f3
} yield (f1, f2, f3)).map {
    case (r1, r2, r3) =>
        //Do your stuff with the results
}

// Future.sequence
Future.sequence(f1, f2, f3).map {
    case (r1, r2, r3) =>
        //Do your stuff with the results
}
导入akka.pattern.ask
案例对象请求
隐式val timeout=超时(5秒)//下面的“?”需要
//问你的演员一个结果
val f1=阿克特拉?请求
val f2=actorB?请求
val f3=actorC?请求
//为了理解
(用于{

那么您认为最好的做法是什么呢?您可以使用Futures.sequence()将Iterable转换为Future