reactor-core/src/main/java/reactor/core/publisher/Flux.java
public final Flux<Flux<T>> windowTimeout(int maxSize, Duration maxTime, Scheduler timer) {
		return onAssembly(new FluxWindowTimeout<>(this, maxSize, maxTime.toMillis(), timer));
	}
public final Flux<Flux<T>> windowTimeout(int maxSize, Duration maxTime, Scheduler timer) {
		return onAssembly(new FluxWindowTimeout<>(this, maxSize, maxTime.toMillis(), timer));
	}
Split this {@link Flux} sequence into multiple {@link Flux} windows containing
{@code maxSize} elements (or less for the final window) and starting from the first item.
Each {@link Flux} window will onComplete once it contains {@code maxSize} elements
OR it has been open for the given {@link Duration} (as measured on the provided
{@link Scheduler}).

<p>
<img class="marble" src="doc-files/marbles/windowTimeout.svg" alt="">

@reactor.discard This operator discards elements it internally queued for backpressure
upon cancellation or error triggered by a data signal.

@param maxSize the maximum number of items to emit in the window before closing it
@param maxTime the maximum {@link Duration} since the window was opened before closing it
@param timer a time-capable {@link Scheduler} instance to run on

@return a {@link Flux} of {@link Flux} windows based on element count and duration