我想创建一个 Akka 流流,它将使用一个元素并按住它,直到降低一个标志。
预期的效果如下所示,但我意识到这不是一个好的解决方案。
val flow: Flow[Int, Int, NotUsed] = {
Flow[Int] map { i =>
if (flagIsRaised) { waitUntilFlagIsLowered(); i}
else { i }
}
}
例如,我不希望waitUntilFlagIsLowered
阻止。
理想情况下,我想要一个习惯性的 Akka Streams 解决方案,可以使用标准 Akka Streams 运算符。
查看 Akka Streams Contrib 项目中的Valve
实用程序:
具体化为ValveSwitch的未来,它提供了一个方法翻转,停止或重新启动通过舞台的元素流。只要阀门关闭,它就会背压。
如何使用它的示例在 ValveSpec
.