是否可以将重试配置为在 null 时重试



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

Retry retry = Retry.ofDefaults("retry");
Retry.decorateSupplier(retry, () -> (String) null).get();
assertThat(retry.getMetrics().getNumberOfSuccessfulCallsWithoutRetryAttempt()).isEqualTo(0);

此操作失败,因为返回 null 是可以的。是否可以在空值上配置重试。

使用您自己的retryOnResultPredicate创建自定义RetryConfig,如果result null,则返回true

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);

有关更多示例,另请参阅 resilience4j 文档。

相关内容

  • 没有找到相关文章

最新更新