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.

Reply via email to