我试图设计一个程序来获得一组输入(比如一些数字)。
它将对每个输入进行一些计算,并收集结果。
我需要这是异步计算。
看看scala和akka,它看起来很完美,但我似乎无法理解我的演员的设计,谁会这样做呢?
例如:为每个calc创建一个参与者?和一个演员收集所有的结果?
对使用akka的设计有什么想法或文件吗?
谢谢!
发布于 2014-04-09 12:09:47
请看这个示例项目
这是一个akka参与者系统的示例,该系统有一个获得输入集的参与者。
对于每个输入,is将创建一个子参与者来计算这一点,最后将显示来自所有子参与者的结果。
发布于 2014-04-09 20:25:15
我不会直接回答你的问题,因为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 007的代码一样,但是非常短。
我不是说你不应该用阿克卡。但是,您应该考虑什么最适合您的应用程序。
https://stackoverflow.com/questions/22961982
复制相似问题