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));
	}
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
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 } ) .