猿问

可以将重试配置为重试 null 吗?

我刚开始使用 resilience4j,想知道是否可以设置重试以重试空结果。这是一个例子:


Retry retry = Retry.ofDefaults("retry");

Retry.decorateSupplier(retry, () -> (String) null).get();

assertThat(retry.getMetrics().getNumberOfSuccessfulCallsWithoutRetryAttempt()).isEqualTo(0);

这失败了,因为返回 null 是可以的。是否可以配置空重试。


森林海
浏览 88回答 1
1回答

慕桂英3389331

创建一个RetryConfig自定义的retryOnResultPredicate返回true如果result是null:RetryConfig customConfig = RetryConfig.custom()    .retryOnResult(response -> response == null)    .build();然后在创建实例时将其用作配置参数Retry:Retry retry = Retry.of("retry", customConfig);Retry.decorateSupplier(retry, () -> (String) null).get();assertThat(retry.getMetrics().getNumberOfSuccessfulCallsWithoutRetryAttempt()).isEqualTo(0);
随时随地看视频慕课网APP

相关分类

Java
我要回答