Akka-stream,一旦我收到一些物品就触发动作?

时间:2017-01-08 19:55:19

标签: scala akka akka-stream

我正在寻找一个"聚合器"在akka-streams中阻止。例如,一个块等到它收到3个字符串然后触发一个动作 - 比如评估平均长度 - 并向下游传播动作的结果。

流程会等待接收三个字符串,比如说

"hallo"
"boat"
"cat"

然后评估平均长度

4

并将其发送到下游。最简单的方法是什么?

1 个答案:

答案 0 :(得分:0)

这取决于要求,但在您的特定情况下,您可以

Source(List(1, 2, 3, 4, 5, 6, 7))
  .grouped(3)
  .map { chunk =>
    chunk.sum / 3.0
  }

您也可以使用.scan执行此操作的变体。