如何延迟附加到另一个akka流的akka​​流的实现?

时间:2017-10-20 16:22:20

标签: scala akka akka-stream

FlowOps#concat的文档说明了

  

...... Source与此Flow一起实现,并且通过断言背压直到它的时间到来而不再产生元素。

换句话说,如果我有

sourceA.concat(sourceB)

然后sourceB将与sourceA同时具体化。

sourceB完成之前,如何推迟实现sourceA

我正在使用Akka 2.5.6。

1 个答案:

答案 0 :(得分:1)

您是否尝试使用Source.lazily()

以下是scala doc所说的内容:

  

创建一个Source,在有下游需求之前没有实现,当源实现物化未来完成时带有其值,如果下游取消或失败而没有任何需求,则永远不会调用创建工厂并且物化Future失败。

另请参阅:https://doc.akka.io/docs/akka/2.5.6/scala/stream/stages-overview.html#lazily

那是:

sourceA.concat(Source.lazily(() => sourceB))