reactor-core/src/main/java/reactor/core/publisher/Flux.java
public final Flux<List<T>> bufferTimeout(int maxSize, Duration maxTime, Scheduler timer) {
		return bufferTimeout(maxSize, maxTime, timer, listSupplier());
	}
public final Flux<List<T>> bufferTimeout(int maxSize, Duration maxTime, Scheduler timer) {
		return bufferTimeout(maxSize, maxTime, timer, listSupplier());
	}
Collect incoming values into multiple {@link List} buffers that will be emitted
by the returned {@link Flux} each time the buffer reaches a maximum size OR the
maxTime {@link Duration} elapses, as measured on the provided {@link Scheduler}.
<p>
<img class="marble" src="doc-files/marbles/bufferTimeoutWithMaxSizeAndTimespan.svg" alt="">

@reactor.discard This operator discards the currently open buffer upon cancellation or error triggered by a data signal.

@param maxSize the max collected size
@param maxTime the timeout enforcing the release of a partial buffer
@param timer a time-capable {@link Scheduler} instance to run on

@return a microbatched {@link Flux} of {@link List} delimited by given size or a given period timeout