1 回答

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以使用retry(Predicate<? super Throwable> retryMatcher),它將根據(jù)可拋出條件重試該操作。
在下面的代碼中,如果從客戶端接收到的數(shù)據(jù)為空,我將返回 Mono.error,然后根據(jù)重試中的錯(cuò)誤條件再次執(zhí)行上述操作。
您還可以限制重試次數(shù),
retry(long numRetries, Predicate<? super Throwable> retryMatcher)
final Flux<Data> flux = WebClient.create().get().uri("uri").exchange().flatMap(data -> {
if (data == null)
return Mono.error(new RuntimeException());
return Mono.just(data);
}).retry(throwable -> throwable instanceof RuntimeException)
.flatMap(response -> response.bodyToMono(Data.class)).flux();
添加回答
舉報(bào)