public final Mono<T> publishOn(Scheduler scheduler) {
		if(this instanceof Callable) {
			if (this instanceof Fuseable.ScalarCallable) {
				try {
					T value = block();
					return onAssembly(new MonoSubscribeOnValue<>(value, scheduler));
				}
				catch (Throwable t) {
					//leave MonoSubscribeOnCallable defer error
				}
			}
			@SuppressWarnings("unchecked")
			Callable<T> c = (Callable<T>)this;
			return onAssembly(new MonoSubscribeOnCallable<>(c, scheduler));
		}
		return onAssembly(new MonoPublishOn<>(this, scheduler));
	}
public final Mono<T> publishOn(Scheduler scheduler) {
		if(this instanceof Callable) {
			if (this instanceof Fuseable.ScalarCallable) {
				try {
					T value = block();
					return onAssembly(new MonoSubscribeOnValue<>(value, scheduler));
				}
				catch (Throwable t) {
					
				}
			}
			@SuppressWarnings("unchecked")
			Callable<T> c = (Callable<T>)this;
			return onAssembly(new MonoSubscribeOnCallable<>(c, scheduler));
		}
		return onAssembly(new MonoPublishOn<>(this, scheduler));
	}
public final Mono < T > publishOn ( Scheduler scheduler ) { if ( this instanceof Callable ) { if ( this instanceof Fuseable . ScalarCallable ) { try { T value = block ( ) ; return onAssembly ( new MonoSubscribeOnValue <> ( value , scheduler ) ) ; } catch ( Throwable t ) { //leave MonoSubscribeOnCallable defer error } } @ SuppressWarnings ( "unchecked" ) Callable < T > c = ( Callable < T > ) this ; return onAssembly ( new MonoSubscribeOnCallable <> ( c , scheduler ) ) ; } return onAssembly ( new MonoPublishOn <> ( this , scheduler ) ) ; }
Run onNext, onComplete and onError on a supplied {@link Scheduler}
{@link Worker Worker}.
<p>
This operator influences the threading context where the rest of the operators in
the chain below it will execute, up to a new occurrence of {@code publishOn}.
<p>
<img class="marble" src="doc-files/marbles/publishOnForMono.svg" alt="">
<p>
Typically used for fast publisher, slow consumer(s) scenarios.

<blockquote><pre>
{@code mono.publishOn(Schedulers.single()).subscribe() }
</pre></blockquote>

@param scheduler a {@link Scheduler} providing the {@link Worker} where to publish

@return an asynchronously producing {@link Mono}
Run onNext onComplete and onError on a supplied { @link Scheduler } { @link Worker Worker } . <p > This operator influences the threading context where the rest of the operators in the chain below it will execute up to a new occurrence of { @code publishOn } . <p > <img class = marble src = doc - files / marbles / publishOnForMono . svg alt = > <p > Typically used for fast publisher slow consumer ( s ) scenarios .