如何创建暂停直到降低标志的 Akka 流流



我想创建一个 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 .

最新更新