我剛開始使用 resilience4j,想知道是否可以設(shè)置重試以重試空結(jié)果。這是一個(gè)例子:Retry retry = Retry.ofDefaults("retry");Retry.decorateSupplier(retry, () -> (String) null).get();assertThat(retry.getMetrics().getNumberOfSuccessfulCallsWithoutRetryAttempt()).isEqualTo(0);這失敗了,因?yàn)榉祷?null 是可以的。是否可以配置空重試。
1 回答

慕桂英3389331
TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊
創(chuàng)建一個(gè)RetryConfig自定義的retryOnResultPredicate返回true如果result是null:
RetryConfig customConfig = RetryConfig.custom()
? ? .retryOnResult(response -> response == null)
? ? .build();
然后在創(chuàng)建實(shí)例時(shí)將其用作配置參數(shù)Retry:
Retry retry = Retry.of("retry", customConfig);
Retry.decorateSupplier(retry, () -> (String) null).get();
assertThat(retry.getMetrics().getNumberOfSuccessfulCallsWithoutRetryAttempt()).isEqualTo(0);
添加回答
舉報(bào)
0/150
提交
取消