Трудно сказать, что именно вы хотите сделать, но если я правильно понимаю и вы хотите получить от поставщика, вы можете просто использовать
Mono # retry
ValueSource заменен на String, поскольку из вопроса неясно, что вы хотите с ним делать, но это не влияет на logi c в любом случае.
class ValuesService{
private Mono<String> valuesPublisher;
ValuesService(Supplier<Mono<String>> sourcesSupplier) {
this.valuesPublisher =
//Every subscription calls get on supplier
Mono.defer(sourcesSupplier)
//Retry when error, resubsribes each time
.retry();
}
Mono<String> getValuesPublisher(){
return valuesPublisher;
}
}