【发布时间】:2017-01-09 06:10:04
【问题描述】:
我正在 akka-streams 中寻找“聚合器”块。例如,一个块等待直到它收到 3 个字符串,然后触发一个动作 - 比如评估平均长度 - 并将动作的结果向下游传播。
流程会等待接收三个字符串,比如说
"hallo"
"boat"
"cat"
然后计算平均长度
4
并将其发送到下游。实现这一目标的最简单方法是什么?
【问题讨论】:
标签: scala akka akka-stream
我正在 akka-streams 中寻找“聚合器”块。例如,一个块等待直到它收到 3 个字符串,然后触发一个动作 - 比如评估平均长度 - 并将动作的结果向下游传播。
流程会等待接收三个字符串,比如说
"hallo"
"boat"
"cat"
然后计算平均长度
4
并将其发送到下游。实现这一目标的最简单方法是什么?
【问题讨论】:
标签: scala akka akka-stream
这取决于要求,但在您的特定情况下,您可以这样做
Source(List(1, 2, 3, 4, 5, 6, 7))
.grouped(3)
.map { chunk =>
chunk.sum / 3.0
}
您也可以使用.scan 对此进行变体。
【讨论】: