我试图通过添加@Retryable
在我的(spring boot gradle plugin)应用程序中添加重试逻辑。
到目前为止我做了什么:
在课程路径中添加了最新的启动器aop:
classpath(group: 'org.springframework.boot', name: 'spring-boot-starter-aop', version: '1.4.0.RELEASE')
重试课程:
@Component
@EnableRetry
public class TestRetry {
@Retryable(maxAttempts = 3, backoff = @Backoff(delay = 2000))
public void retryMethod() {
throw new RunTimeException("retry exception");
}
}
测试逻辑:
@Configuration
@EnableRetry
public class CallRetryClass {
public void callRetryMethod() {
TestRetry testRetry = new TestRetry();
testRetry.retryMethod();
}
}
但是重试逻辑不起作用。有没有人有任何建议?
答案 0 :(得分:0)
您需要使用TestRetry
的spring-managed bean而不是构建自己的对象。 CallRetryClass
应如下所示:
@Configuration
@EnableRetry
public class CallRetryClass {
@Autowired
private TestRetry testRetry;
public void callRetryMethod() {
testRetry.retryMethod();
}
}