2017-05-01 58 views
5

: Söylemek neden alt akışa yatarsanAkKA Streams `groupBy` SubFlow tamamlamada kapasite değişiyor mu? <code>n</code> bazı maksimum kapasiteli bir dere akışı tanımı <code>groupBy</code> kullanırken

source.groupBy(Int.MaxValue, _.key).to(Sink.actorRef) 

, bir Aktör lavabo ve kasıtlı kısmi akımlar bazı iletide sonlanmasına sebep, groupBy kapasitesini serbest bırakacak mı? Bir alt akış, havuz tarafından bittiğinde n'dan n-1'a n dönecek mi? Bu dinamik bir ish grafiği oluşturmak için geçerli bir yol mu? İlişkin

cevap

0

kadar genel olarak groupBy işleri: evet, maxSubstreams kapasitesi yani, aktif akışa maksimum sayısını temsil eden, dinamiktir.

GroupBy aşaması, her bir alt akışın iç durumunda bir referansını tutar ve bu belirli alt akış her tamamlandığında kaldırılır.

Özel örneğinizle ilgili olarak, "bir alt akışın havuz tarafından bittiğinden" emin olmanın bir yolu olduğunu düşünmüyorum. Bunun nedeni, groupBy'un ardından to(Sink.actorRef) kullanarak tüm akışların tek bir oyuncuyu beslemesidir.

+0

Açıklama için teşekkür ederiz! O zaman, bir alt akışı incelikle kapatmak için önerilen bir yol var mı? – simonl

+1

Bu soru karşısında tökezledi - http://stackoverflow.com/questions/38325210/proper-way-to-stop-akka-streams-on-condition; 'takeWhile'/'statefulMapconcat' kullanarak istediğimi elde edebileceğim gibi görünüyor – simonl