java - Springboot @retryable 不重试

标签 java spring maven spring-boot spring-retry

以下代码不会重试。我错过了什么?

@EnableRetry
@SpringBootApplication
public class App implements CommandLineRunner
{
    .........
    .........


    @Retryable()
    ResponseEntity<String> authenticate(RestTemplate restTemplate, HttpEntity<MultiValueMap<String, String>> entity) throws Exception
    {
        System.out.println("try!");
        throw new Exception();
        //return restTemplate.exchange(auth_endpoint, HttpMethod.POST, entity, String.class);
    }

我已将以下内容添加到 pom.xml。

    <dependency>
        <groupId>org.springframework.retry</groupId>
        <artifactId>spring-retry</artifactId>
        <version>1.1.2.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-aop</artifactId>
    </dependency>

我还尝试为@Retryable 提供不同的参数组合。

@Retryable(maxAttempts=10,value=Exception.class,backoff=@Backoff(delay = 2000,multiplier=2))

谢谢。

最佳答案

在 spring boot 2.0.2 版本中,我观察到如果您在同一个类中有可重试和调用的方法,则 @Retryable 不起作用。调试时发现切入点没有正确构建。目前,这个问题的解决方法是我们需要在不同的类中编写该方法并调用它。

可以找到工作示例 here .

关于java - Springboot @retryable 不重试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38212471/

相关文章:

java - Maven 抛出空指针异常

java - 如何在 Spring 批处理作业的下一步中获取上一步执行的 ID?

java - 不可变构造函数注入(inject) Kotlin 类的正确方法

hibernate - 使用 Hibernate + Spring 缓存 - 一些问题

java - Spring 批处理 : NotSerializableException

maven - 将快照与Lucene-Appengine项目的Maven版本进行比较

java - 是否存在 JUnit 测试的标准结构?通常首选每个测试有多少个断言?

java - 创建自动彩票

java - Spring:如何获取bean层次结构?

尝试使用 Maven 从 Eclipse 部署时 Tomcat 拒绝连接