Akka: создай графическую сцену без веера - PullRequest
0 голосов
/ 14 января 2020

Я строю несколько сложный поток с GraphStage и хотел бы сделать это шаг за шагом, начиная с простого линейного графа, который не содержит вещания, разделения или слияния. Я получил график для работы с использованием разбиения и слияния с использованием выходов, которые являются выходами в Merge. Но как мне создать свой собственный аутлет?

Это работает

val filterSwitch = 0

Source.fromGraph(GraphDSL.create() {
    implicit builder =>
        import GraphDSL.Implicits._

   val source = Source(List('1', '2', '3'))

   val fileFlow = Flow[String] ...

   val merge = builder.add(Merge[ByteString](2))

   val partition = builder.add(Partition[ByteString]
        (2, in => if (filterSwitch) 0 else 1))

   source ~> fileFlow ~> partition.in
   partition.out(0) ~> filterFlow ~> merge.in(0)
   partition.out(1) ~> merge.in(1)
   SourceShape(merge.out)
  }
)

Как я могу создать график, который будет выглядеть как

source ~> fileFlow ~> SourceShape(fileFlow.out)

Это, очевидно, неправильно, но Как создать выход из fileFlow, который может быть приведен в SourceShape?

...