Broadcast и Concat не работают в Akka Stream

Я хочу создать график с Broadcast и Concat в Akka Stream, но следующий код не работает. Я хочу знать, почему это не работает.

  val src = Source(1 to 3)
  val sink = Sink.foreach(println)
  RunnableGraph.fromGraph(GraphDSL.create() { implicit b =>
    import GraphDSL.Implicits._
    val bcast = b.add(Broadcast[Int](2))
    val concat = b.add(Concat[Int](2))

    src  ~> bcast ~> concat ~> sink
            bcast ~> concat

    ClosedShape
  }).run()

Мой ожидаемый результат

1
2
3
1
2
3

Но на самом деле ничего не выводится. Я хотел бы, чтобы вы сказали, почему мой код не работает.


person ryo    schedule 15.03.2016    source источник
comment
Вещание может работать только в том случае, если все его нисходящие потоки имеют спрос, а конкатировать запросы только от одного восходящего потока за раз (в противном случае вы хотели бы иметь слияние и т. д.), и, таким образом, широковещательная передача не может ничего транслировать.   -  person Viktor Klang    schedule 15.03.2016
comment
Большое спасибо. Я понимаю причину.   -  person ryo    schedule 16.03.2016


Ответы (1)


Вещание может работать только в том случае, если все его нисходящие потоки имеют спрос, а конкатировать запросы только от одного восходящего потока за раз (в противном случае вы хотели бы иметь слияние и т. д.), и, таким образом, широковещательная передача не может ничего транслировать.

person Viktor Klang    schedule 16.03.2016
comment
Спасибо. Ваш ответ помог мне. - person ryo; 16.03.2016