akka流中的触发信号

时间:2016-12-29 10:09:09

标签: scala akka-stream

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
})

在此示例中,TriggertriggerSource的外观如何?

1 个答案:

答案 0 :(得分:0)

1。Trigger可以是任何东西,正如您从图形逻辑中看到的那样,它一直被丢弃。最有可能的是

case object Trigger

2. triggerSource是有效的Source[Trigger, _]。请参阅docs以获取可能性列表。

请注意,此具体示例涉及ClosedShape实现NotUsed,因此如果您需要访问triggerSource具体化值,或将其连接到更复杂的图表,则需要进行调整Trigger秒。