我刚开始使用 resilience4j,想知道是否可以设置重试以重试空结果。这是一个例子:Retry retry = Retry.ofDefaults("retry");Retry.decorateSupplier(retry, () -> (String) null).get();assertThat(retry.getMetrics().getNumberOfSuccessfulCallsWithoutRetryAttempt()).isEqualTo(0);这失败了,因为返回 null 是可以的。是否可以配置空重试。
1 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
创建一个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);
添加回答
举报
0/150
提交
取消