组合流程图

时间:2014-12-06 23:14:12

标签: akka reactive-streams

我一直在玩Akka Streams,并想法创建Flow并使用FlowGraph将它们连接在一起。

我知道Akka的这一部分仍处于开发阶段,所以有些事情可能无法完成,而其他一些部分可能会改变,但是有可能创建一个不完整的FlowGraph" - 即没有附加到Sink - 并将其传递给我的代码的不同部分,通过向其添加流量来扩展,最后通过添加接收器来完成?

基本上,我希望能够编写FlowGraphs但不了解如何...特别是如果FlowGraph通过使用广播分割流。

由于

1 个答案:

答案 0 :(得分:0)

下周(12月)将为我们撰写文档,所以我希望这将有助于您更轻松地进入akka流!话虽如此,这是一个快速回答:

基本上您需要PartialFlowGraph而不是FlowGraph。在那些我们允许使用UndefinedSinkUndefinedSource之后,您可以随后“附加”。在您的情况下,我们还提供了一个简单的帮助构建器来创建只有一个“缺失”接收器的图形 - 这些图形可以完全像处理源一样对待,请参见下文:

  // for akka-streams 1.0-M1

  val source = Source() { implicit b ⇒
    // prepare an undefined sink, which can be relpaced by a proper sink afterwards
    val sink = UndefinedSink[Int]

    // build your processing graph
    Source(1 to 10) ~> sink

    // return the undefined sink which you mean to "fill in" afterwards
    sink
  }

  // use the partial graph (source) multiple times, each time with a different sink
  source.runWith(Sink.ignore)
  source.runWith(Sink.foreach(x ⇒ println(x)))

希望这有帮助!