2016-12-29 58 views
0

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和會是什麼樣?

回答

0

1. Trigger可以是任何東西,正如您從圖表邏輯中看到的那樣,它總是被丟棄。最有可能將

case object Trigger 

2. triggerSource是任何有效Source[Trigger, _]。請參閱docs以獲取可能的列表。

注意,這個具體的例子涉及ClosedShape物化到NotUsed,所以需要調整,如果你需要訪問triggerSource化值,或此連接到生產Trigger個更復雜的圖形。