如何解决如何在 Spring Boot 中使用 retryOnResult?
Resilience4j 版本:1.7.0 Java版本:8
如果返回 false,我正在尝试使用 Resilience4j 重试布尔方法。代码如下
@Retry(name = "redis")
public boolean publishMessage(RedisMessageWrapper redisMessage) {
try {
String response = redisCommands.set(redisMessage.getKey(),redisMessage.getValue());
logger.info("Response after publishing the message is {}",response);
return (RedisMessageUtils.SET_ACK_MSG.equalsIgnoreCase(response));
} catch (Exception e) {
logger.error("An error occurred while trying to publish the message",e);
return false;
}
}
@Bean
public RetryConfigCustomizer retryConfigCustomizer() {
return RetryConfigCustomizer
.of("redis",builder -> builder.retryOnResult(result -> (boolean) result == false));
}
resilience4j.retry.configs.default.maxAttempts=3
resilience4j.retry.configs.default.retryExceptions[0]=org.springframework.web.client.HttpServerErrorException
resilience4j.retry.configs.default.retryExceptions[1]=java.util.concurrent.TimeoutException
resilience4j.retry.configs.default.retryExceptions[3]=org.springframework.web.client.ResourceAccessException
resilience4j.retry.configs.default.ignoreExceptions[0]=io.github.resilience4j.circuitbreaker.CallNotPermittedException
resilience4j.retry.configs.default.ignoreExceptions[1]=org.springframework.web.client.HttpClientErrorException
resilience4j.retry.instances.redis.baseConfig=default
resilience4j.retry.instances.redis.waitDuration=3500
我在项目中配置了其他重试和断路器,它们可以正常工作,因为它们可以处理异常,但在这种情况下,由于我正在处理一个布尔值,我不知道为什么我的实现不起作用。任何帮助将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。