【发布时间】:2017-11-19 00:49:09
【问题描述】:
没有 Future,这就是我如何将所有较小的 Seq 组合成一个带有 flatmap
的大 Seqcategory.getCategoryUrlKey(id: Int):Seq[Meta] // main method
val appDomains: Seq[Int]
val categories:Seq[Meta] = appDomains.flatMap(category.getCategoryUrlKey(_))
现在getCategoryUrlKey 方法可能会失败。我在前面放了一个断路器,以避免在 maxFailures 之后为下一个元素调用它。现在断路器不会返回Seq,而是返回Future[Seq]
lazy val breaker = new akka.pattern.CircuitBreaker(...)
private def getMeta(appDomainId: Int): Future[Seq[Meta]] = {
breaker.withCircuitBreaker {
category.getCategoryUrlKey(appDomainId)
}
}
如何遍历 List appDomains 并将结果合并为一个 Future[Seq] ,可能合并为 Seq ?
如果函数式编程适用,有没有办法不用临时变量直接转换?
【问题讨论】:
标签: scala future seq circuit-breaker