【发布时间】:2016-08-31 17:08:39
【问题描述】:
我有一个案例类 Thing 的实例,并且我有一堆查询要运行,它们会返回一个 Things 的集合,如下所示:
def queries: Seq[Future[Seq[Thing]]]
我需要从所有期货(如上)中收集所有 Things,并将它们分组为大小相同的 10,000 个集合,以便可以将它们序列化为 10,000 个 Things 的文件。
def serializeThings(Seq[Thing]): Future[Unit]
我希望它以这样一种方式实现,即在序列化之前我不等待所有查询运行。在第一个查询的 future 完成后返回 10,000 个Things,我想开始序列化。
如果我这样做:
Future.sequence(queries)
它将收集所有查询的结果,但我的理解是,在所有查询完成并且所有Things 必须立即放入内存之前,不会调用像map 这样的操作。
使用 Scala 集合和并发库实现批处理流管道的最佳方式是什么?
【问题讨论】:
-
@insan-e 我不想批量处理期货。我想批处理期货的结果,每个期货返回任意数量的
Things
标签: scala collections future