微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Springboot @retryable没有重试

以下代码未重试.我错过了什么?
@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))

谢谢.

解决方法

对于要发现的方法的@Retryable注释,需要从初始化的上下文中正确调用它.方法是从spring上下文中调用bean还是通过其他方式调用

如果测试这是你的跑步者使用SpringJunit4ClassRunner?

原文地址:https://www.jb51.cc/springboot/127231.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐