Триггерный сигнал в потоках akka

Этот фрагмент кода в документации по поваренной книге akka-stream иллюстрирует запуск потока элементов программно :

val graph = RunnableGraph.fromGraph(GraphDSL.create() { implicit builder =>
  import GraphDSL.Implicits._
  val zip = builder.add(Zip[Message, Trigger]())
  elements ~> zip.in0
  triggerSource ~> zip.in1
  zip.out ~> Flow[(Message, Trigger)].map { case (msg, trigger) => msg } ~> sink
  ClosedShape
})

Как Triggerи triggerSourceкак будет выглядеть в этом примере ?

1 ответ

  1. 1. Triggerможет быть что угодно, как вы можете видеть из логики графа, это становится отбрасывается все время. Скорее всего это будет

    case object Trigger
    

    2. triggerSourceлюбой действительный Source[Trigger, _]. Список возможностей см. В документах.

    Обратите внимание , что этот конкретный пример включает в себя ClosedShapeматериализующееся КNotUsed, поэтому он будет нуждаться в настройке, если вам нужно получить доступ triggerSourceк материализованному значению или подключить его к более сложному графу, производящему Triggers.