【发布时间】:2021-11-23 10:41:29
【问题描述】:
我是spring-retry 的新手。基本上,为了重试对 REST API 的调用,我已将 spring-retry 集成到我的 spring-boot 应用程序中。为此,我进行了以下更改:
-
在 pom.xml 中添加了
spring-retry。 -
添加如下配置:
@Configuration @EnableRetry public class RetryConfiguration { } -
最后在类(这个类不是Spring Bean)方法上加了
@Retryable注解,各种异常我想重试如下:public class OAuth1RestClient extends OAuthRestClient { @Override @Retryable(maxAttempts = 3, value = { Exception.class}, backoff = @Backoff(delay = 100, multiplier = 3)) public Response executeRequest(OAuthRequest request) throws InterruptedException, ExecutionException, IOException { System.out.println("Inside Oauth1 client"); return myService.execute(request); }
现在,executeRequest 方法不会重试。如果我在这里遗漏了什么,我无法理解。
有人可以帮忙吗?谢谢。
【问题讨论】:
-
如果不是spring bean,这行不通。仅 AOP(默认情况下)适用于 Spring 托管 bean。
-
@M.Deinum 谢谢。因此,在这种情况下,我想剩下的唯一选择是使用 RetryTemplate,以便使上述方法重试。
标签: java spring spring-boot spring-retry