我使用的是spring-retry依赖项,目前有一个带有@EnableRetry注释的Java应用程序类,以及一个带有以下注释的函数
@Retryable(value = MongoException.class,
maxAttempts = 4, backoff = @Backoff(delay = 100))这允许我重新尝试函数的MongoException类型的所有异常。但是,id希望基于特定的状态代码重试,甚至根据抛出的错误消息进行重试。这有可能通过Spring重试来实现吗?
发布于 2021-12-05 15:36:13
在@Retryable方法中,捕获异常;然后:
RetrySynchronizationManager.getContext().setExhaustedOnly()`并重新抛出它(或另一种异常类型)。
将禁用重试,并直接转到@Recover方法(如果提供),否则将抛出给调用方。
或者,如上面@geobreze注释所示,使用exceptionExpression https://docs.spring.io/spring-retry/docs/api/current/org/springframework/retry/annotation/Retryable.html#exceptionExpression--
https://stackoverflow.com/questions/70154402
复制相似问题