reactor-core/src/main/java/reactor/core/publisher/Flux.java
public final <C extends Collection<? super T>> Flux<C> bufferTimeout(int maxSize, Duration maxTime, Supplier<C> bufferSupplier) {
		return bufferTimeout(maxSize, maxTime, Schedulers.parallel(),
				bufferSupplier);
	}
public final <C extends Collection<? super T>> Flux<C> bufferTimeout(int maxSize, Duration maxTime, Supplier<C> bufferSupplier) {
		return bufferTimeout(maxSize, maxTime, Schedulers.parallel(),
				bufferSupplier);
	}
public final < C extends Collection < ? super T > > Flux < C > bufferTimeout ( int maxSize , Duration maxTime , Supplier < C > bufferSupplier ) { return bufferTimeout ( maxSize , maxTime , Schedulers . parallel ( ) , bufferSupplier ) ; }
Collect incoming values into multiple user-defined {@link Collection} buffers that
will be emitted by the returned {@link Flux} each time the buffer reaches a maximum
size OR the maxTime {@link Duration} elapses.
<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 bufferSupplier a {@link Supplier} of the concrete {@link Collection} to use for each buffer
@param <C> the {@link Collection} buffer type
@return a microbatched {@link Flux} of {@link Collection} delimited by given size or a given period timeout
Collect incoming values into multiple user - defined { @link Collection } buffers that will be emitted by the returned { @link Flux } each time the buffer reaches a maximum size OR the maxTime { @link Duration } elapses . <p > <img class = marble src = doc - files / marbles / bufferTimeoutWithMaxSizeAndTimespan . svg alt = >