completionTimeout
If the completion of the stream does not happen until the provided timeout, the stream is failed with a TimeoutException
.
Signature
Source.completionTimeout
Source.completionTimeout
Flow.completionTimeout
Flow.completionTimeout
Description
If the completion of the stream does not happen until the provided timeout, the stream is failed with a TimeoutException
.
Example
This example reads the numbers from a source and do some calculation in the flow with a completion timeout of 10 milliseconds. It will fail the stream, leading to failing the materialized Future
CompletionStage
if the stream has not completed mapping the numbers from the source when the timeout hits.
- Scala
-
source
val source = Source(1 to 10000).map(number => number * number) source.completionTimeout(10.milliseconds).run()
- Java
-
source
Source<Integer, NotUsed> source = Source.range(1, 100000).map(number -> number * number); CompletionStage<Done> result = source.completionTimeout(Duration.ofMillis(10)).run(system); return result;
Reactive Streams semantics
emits when upstream emits an element
backpressures when downstream backpressures
completes when upstream completes or fails if timeout elapses before upstream completes
cancels when downstream cancels