首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@Retryable未被触发

@Retryable未被触发
EN

Stack Overflow用户
提问于 2017-01-26 22:05:31
回答 1查看 6.5K关注 0票数 8

我试着把可能的最简单的重试方案归纳下来。重试在执行时被忽略。

Application.java:

代码语言:javascript
复制
@SpringBootApplication
@EnableRetry
public class Application extends SpringBootServletInitializer {
//...

这是在服务类中的:

代码语言:javascript
复制
public Boolean processItem() {
    Long id = 999L;
    try {
        retrieveItemWithRetry(id);
        return true;
    } catch (NoResultException e) {
        return false;
    }
}

@Retryable(include=NoResultException.class, backoff = @Backoff(delay = 500, maxDelay = 3000), maxAttempts = 5)
private void retrieveItemWithRetry(Long id) {
    retrieveItem(id);
}

private OrderRequest retrieveItem(Long id) {
    throw new NoResultException();
}    
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-26 22:22:03

@Retryable方法的内部调用(在同一个类中)是不可还原的;请参阅昨天的my answer here,这说明了原因。

此外,@Retryable方法必须是公共的。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41883812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档