gpt4 book ai didi

java - Resilience4j.retry 异常不起作用

转载 作者:行者123 更新时间:2023-12-01 17:12:46 27 4
gpt4 key购买 nike

我正在使用resilience4j.retryresilience4j.circuitbreakerService1 正在调用另一个服务 Service2,该服务可能会引发异常。即使出现异常,我也应该尝试连接至少定义的次数 waitDuration * maxRetryAttempts

Service1 ---> calling ---> Service2

application.yml

resilience4j.retry:
instances:
service1:
maxRetryAttempts: 4
waitDuration: 1000 #ms
retryExceptions:
- org.apache.http.conn.HttpHostConnectException
- org.apache.thrift.TException
- java.net.ConnectException

Service1Repository.java

Service2Response response = CircuitBreaker.decorateSupplier(circuitBreaker,
Retry.decorateSupplier(retry, () -> {
try {
return service2.getdata(params);
} catch (TException e) {
log.error("msg", e);
throw new Service1Exception("msg", e);
}
})
).get();

但是,当 Service2 关闭时,它不会重试(最多 4 次,每次应该在 1000 毫秒后发生),我收到响应(在我的情况下为 null)立即地。我尝试增加值(10000ms),但仍然相同。我看到日志已打印,但如果 Serviece2 关闭,服务应等待 waitDuration * maxRetryAttempts

最佳答案

如果你想捕获检查异常,你必须使用decorateCallable

关于java - Resilience4j.retry 异常不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61413098/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com