October 2018
Intermediate to advanced
556 pages
15h 18m
English
The push factory method allows for the programmatical creation of a Flux instance by adapting a single-threaded producer. This approach is useful for adapting an async, single-threaded, multi-valued API without worrying about backpressure and cancellation. Both aspects are covered by queueing signals if the subscriber can't handle the load. Let's look at the following code:
Flux.push(emitter -> IntStream // (1) .range(2000, 3000) // (1.1) .forEach(emitter::next)) // (1.2) .delayElements(Duration.ofMillis(1)) // (2) .subscribe(e -> log.info("onNext: {}", e)); // (3)
Let's look at the preceding code: