使用akka的Scala异步计算

使用akka的Scala异步计算,scala,asynchronous,akka,typesafe,Scala,Asynchronous,Akka,Typesafe,我试图设计一个程序,将获得一组输入(让我们说一些数字) 它将对每个输入进行一些计算并收集结果 我需要这是异步计算 看着scala和akka,它看起来很完美,但我似乎无法理解我的演员的设计,谁会这么做 例如:为每个计算创建一个参与者?还有一个演员来收集所有的结果 使用akka的设计有什么想法或文件吗 谢谢 看看这个示例项目 这是一个akka actor系统的示例,该系统有一个获得输入集的actor 对于每个输入,is将创建一个子参与者,该子参与者将计算该值,并最终显示所有子参与者的结果 自述:

我试图设计一个程序,将获得一组输入(让我们说一些数字)

它将对每个输入进行一些计算并收集结果

我需要这是异步计算

看着scala和akka,它看起来很完美,但我似乎无法理解我的演员的设计,谁会这么做

例如:为每个计算创建一个参与者?还有一个演员来收集所有的结果

使用akka的设计有什么想法或文件吗


谢谢

看看这个示例项目

这是一个akka actor系统的示例,该系统有一个获得输入集的actor

对于每个输入,is将创建一个子参与者,该子参与者将计算该值,并最终显示所有子参与者的结果

自述:

代码:
我不会直接回答你的问题,因为Nimrod007已经回答了。我不确定您的实际应用程序是什么,但我只是想告诉您,使用直接期货可能要简单得多

import scala.concurrent._
import scala.concurrent.duration._
import ExecutionContext.Implicits.global

object Example extends App {
  val futures = Range(1, 5).map(i => Future { i + 10 })
  val result = Future.fold(futures)(List.empty[Int])((answers, value) => value :: answers)
  result.onComplete(answersTry => answersTry.foreach(println))
  Thread.sleep(1000)
}
它与Nimrod007的代码相同,但要短得多


我不是说你不应该用Akka。但是你应该考虑什么是最适合你的应用程序。< / P>刚才到项目的根文件夹,你需要所有的输入来开始计算吗?或者每个输入有一个计算?你对结果做了什么?现在我得到了一组输入,我需要根据输入类型进行一些计算,在所有计算完成后,我需要得到结果集,并对其进行更多计算。这是简短而清晰的,但我需要使用akka的示例(该系统以后会做更多的事情,以后可能会发布)另一个需要考虑的问题是,在akka,我可以更轻松地处理故障