akka流中的触发信号

Trigger signal in akka streams

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.Trigger 可以是任何东西,正如你从图形逻辑中看到的那样,它一直在被丢弃。很有可能是

case object Trigger

2.triggerSource 是任何有效的 Source[Trigger, _]。有关可能性的列表,请参阅 docs

请注意,此特定示例涉及 ClosedShape 物化为 NotUsed,因此如果您需要访问 triggerSource 物化值,或将其连接到更复杂的对象,则需要对其进行调整图生成 Triggers.