akka-stream cookbook documentation中的这段代码片段说明了如何以编程方式触发元素流:
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
的外观如何?
答案 0 :(得分:0)
1。Trigger
可以是任何东西,正如您从图形逻辑中看到的那样,它一直被丢弃。最有可能的是
case object Trigger
2. triggerSource
是有效的Source[Trigger, _]
。请参阅docs以获取可能性列表。
请注意,此具体示例涉及ClosedShape
实现NotUsed
,因此如果您需要访问triggerSource
具体化值,或将其连接到更复杂的图表,则需要进行调整Trigger
秒。