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
})
在这个例子中,Trigger
和 triggerSource
会是什么样子?
1.Trigger
可以是任何东西,正如你从图形逻辑中看到的那样,它一直在被丢弃。很有可能是
case object Trigger
2.triggerSource
是任何有效的 Source[Trigger, _]
。有关可能性的列表,请参阅 docs。
请注意,此特定示例涉及 ClosedShape
物化为 NotUsed
,因此如果您需要访问 triggerSource
物化值,或将其连接到更复杂的对象,则需要对其进行调整图生成 Trigger
s.
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
会是什么样子?
1.Trigger
可以是任何东西,正如你从图形逻辑中看到的那样,它一直在被丢弃。很有可能是
case object Trigger
2.triggerSource
是任何有效的 Source[Trigger, _]
。有关可能性的列表,请参阅 docs。
请注意,此特定示例涉及 ClosedShape
物化为 NotUsed
,因此如果您需要访问 triggerSource
物化值,或将其连接到更复杂的对象,则需要对其进行调整图生成 Trigger
s.