Hi, Generally speaking, using asynchronous APIs in a stream is achieved by using mapAsync (or mapAsyncUnordered) instead of map.
I'm not sure I understand what exactly you mean about the source emitting messages/batches, but mapAsync works with back-pressure, and has configurable parallelism (number of messages in-flight), so you should be able to achieve what you want with it. Worst case, you can use batching/windowing operators in your stream if the default mapAsync behavior does not match what you need. Tal On Sunday, December 25, 2016 at 11:04:25 AM UTC+2, Guofeng Zhang wrote: > > Hi, > > I have a akka stream. In the middle of the stream the map() calls a remote > service (WSClient),which returns a completionStage. I want the source does > not emit the next element before the completionStage finished. > > To be more efficient, I want the source emit batch of elements, then wait > for all the completionStage finished, then emit another batch of elements. > > How to do it in akka-stream? > > Thanks for your help very much. > > Guofeng > > -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.
