Sink.foreachAsync
Invoke a given procedure asynchronously for each element received.
Signature
Sink.foreachAsync
Sink.foreachAsync
Description
Invoke a given procedure asynchronously for each element received. Note that if shared state is mutated from the procedure that must be done in a thread-safe way.
The sink materializes into a Future[Done]
CompletionStage<Done>
which completes when the stream completes, or fails if the stream fails.
See also:
foreach
Invoke a given procedure for each element received.actorRef
Send the elements from the stream to anActorRef
.
Example
- Scala
-
source
// def asyncProcessing(value: Int): Future[Unit] = _ Source(1 to 100).runWith(Sink.foreachAsync(10)(asyncProcessing))
- Java
-
source
// final Function<Integer, CompletionStage<Void>> asyncProcessing = _ final Source<Integer, NotUsed> numberSource = Source.range(1, 100); numberSource.runWith(Sink.foreachAsync(10, asyncProcessing), system);
Reactive Streams semantics
cancels when a Future
CompletionStage
fails
backpressures when the number of Future
s CompletionStage
s reaches the configured parallelism
1.1.2