2017-01-08 3 views
0

Ich bin auf der Suche nach einem "Aggregator" -Block in akka-Streams. Zum Beispiel ein Block, der wartet, bis er 3 Strings erhalten hat, und dann eine Aktion auslöst - wie die durchschnittliche Länge auswertet - und das Ergebnis der Aktion weiterleiten.Akka-stream, trigger action, nachdem ich einige Items erhalten habe?

Der Fluss würde drei Saiten erhalten warten, sagen

"hallo" 
"boat" 
"cat" 

dann die durchschnittliche Länge bewerten es stromabwärts

4 

und senden. Was ist der einfachste Weg, dies zu erreichen?

Antwort

0

Es hängt Anforderung auf, aber in Ihrem Fall können Sie

Source(List(1, 2, 3, 4, 5, 6, 7)) 
    .grouped(3) 
    .map { chunk => 
    chunk.sum/3.0 
    } 

Sie tun auch Variation dieser mit .scan tun können.

Verwandte Themen