Этот фрагмент кода в документации по поваренной книге 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.
Trigger
может быть что угодно, как вы можете видеть из логики графа, это становится отбрасывается все время. Скорее всего это будет2.
triggerSource
любой действительныйSource[Trigger, _]
. Список возможностей см. В документах.Обратите внимание , что этот конкретный пример включает в себя
ClosedShape
материализующееся КNotUsed
, поэтому он будет нуждаться в настройке, если вам нужно получить доступtriggerSource
к материализованному значению или подключить его к более сложному графу, производящемуTrigger
s.