首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于错误信息或状态代码的Spring重试?

基于错误信息或状态代码的Spring重试?
EN

Stack Overflow用户
提问于 2021-11-29 12:09:35
回答 1查看 725关注 0票数 0

我使用的是spring-retry依赖项,目前有一个带有@EnableRetry注释的Java应用程序类,以及一个带有以下注释的函数

代码语言:javascript
复制
@Retryable(value = MongoException.class,
   maxAttempts = 4, backoff = @Backoff(delay = 100))

这允许我重新尝试函数的MongoException类型的所有异常。但是,id希望基于特定的状态代码重试,甚至根据抛出的错误消息进行重试。这有可能通过Spring重试来实现吗?

EN

回答 1

Stack Overflow用户

发布于 2021-12-05 15:36:13

@Retryable方法中,捕获异常;然后:

代码语言:javascript
复制
RetrySynchronizationManager.getContext().setExhaustedOnly()`

并重新抛出它(或另一种异常类型)。

将禁用重试,并直接转到@Recover方法(如果提供),否则将抛出给调用方。

或者,如上面@geobreze注释所示,使用exceptionExpression https://docs.spring.io/spring-retry/docs/api/current/org/springframework/retry/annotation/Retryable.html#exceptionExpression--

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

https://stackoverflow.com/questions/70154402

复制
相关文章

相似问题

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