reactor-core/src/main/java/reactor/core/publisher/Flux.java
public final Flux<T> repeat(long numRepeat, BooleanSupplier predicate) {
		if (numRepeat < 0L) {
			throw new IllegalArgumentException("numRepeat >= 0 required");
		}
		if (numRepeat == 0) {
			return this;
		}
		return defer( () -> repeat(countingBooleanSupplier(predicate, numRepeat)));
	}
public final Flux<T> repeat(long numRepeat, BooleanSupplier predicate) {
		if (numRepeat < 0L) {
			throw new IllegalArgumentException("numRepeat >= 0 required");
		}
		if (numRepeat == 0) {
			return this;
		}
		return defer( () -> repeat(countingBooleanSupplier(predicate, numRepeat)));
	}
public final Flux < T > repeat ( long numRepeat , BooleanSupplier predicate ) { if ( numRepeat < 0L ) { throw new IllegalArgumentException ( "numRepeat >= 0 required" ) ; } if ( numRepeat == 0 ) { return this ; } return defer ( ( ) -> repeat ( countingBooleanSupplier ( predicate , numRepeat ) ) ) ; }
Repeatedly subscribe to the source if the predicate returns true after completion of the previous
subscription. A specified maximum of repeat will limit the number of re-subscribe.

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

@param numRepeat the number of times to re-subscribe on complete (positive, or 0 for original sequence only)
@param predicate the boolean to evaluate on onComplete

@return a {@link Flux} that repeats on onComplete while the predicate matches,
up to the specified number of repetitions
Repeatedly subscribe to the source if the predicate returns true after completion of the previous subscription . A specified maximum of repeat will limit the number of re - subscribe .