首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring-在未提供恢复方法的情况下达到maxAttempts后重试重试

Spring-在未提供恢复方法的情况下达到maxAttempts后重试重试
EN

Stack Overflow用户
提问于 2019-08-15 23:08:24
回答 1查看 480关注 0票数 0

使用spring-boot 1.5.21玩spring-retry,并注意到在没有实现恢复方法的情况下,当达到maxAttempts时,spring-retry会重新启动。

如果实施了适当的恢复方法,则可按预期工作。如果没有恢复方法,重试不会在maxAttempts处停止,而是再次重新启动。重新启动的次数等于配置的maxAttempts。例如,最大尝试次数=3,重试将执行9次(运行3次重试*3次重启)

使用注释设置重试块@Retryable(include= {ResourceAccessException.class},maxAttemptsExpression = "${retry.maxAttempts}",backoff = @Backoff(delayExpression = "${retry.delay}",multiplierExpression = "${retry.delay-multiplier}"))

maxAttempts =3的预期结果是重试在3次尝试后停止实际结果是重试将重新启动3次尝试3次,总共9次重试。

仅当未提供恢复方法时,才会出现上述情况。根据文档,recover方法是可选的,我不需要这样做,因为在我的例子中,对于失败的REST服务调用没有有效的恢复。(没有可用的冗余服务)

EN

回答 1

Stack Overflow用户

发布于 2019-08-16 00:54:27

如果没有恢复程序,则抛出最后一个异常。

如果调用的源是侦听器容器(例如RabbitMQ、JMS),则将重试传递。

这就是恢复者的全部意义所在。

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

https://stackoverflow.com/questions/57511798

复制
相关文章

相似问题

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