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
可以是任何东西,正如您从图形逻辑中看到的那样,它一直都在被丢弃。最有可能的是
case object Trigger
2.triggerSource
是有效的Source[Trigger, _]
。请参阅文档以获取可能的列表。
请注意,此特定示例涉及到的ClosedShape
实现NotUsed
,因此,如果需要访问triggerSource
实现值,或将其连接到产生Trigger
s的更复杂的图形,则需要进行调整。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句