Java 阿克卡-如何得到几个演员的结果?
我想知道是否有什么最佳实践可以向两个不同的参与者发送两条消息 然后等待它们全部执行(当然是得到结果),以便继续执行 i、 例如: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
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