对于同样是@Scheduled 的@Retryable 方法,未发现@Recover 注释方法

@Recover annotated method is not discovered for a @Retryable method that also is @Scheduled

我研究了这个问题的答案

但我不明白为什么 recover 方法在我的例子中没有 运行。

@Service public MyRetryingService {

    @Scheduled(fixedRate = 10 * 1000)
    @Retryable(backoff = @Backoff(delay = 100, maxDelay = 101), maxAttempts = 3)
    public void transferData() {
        throw new IllegalArgumentException();
    }

    @Recover
    public void recover(IllegalArgumentException exception) {
        System.out.println("Recovering from a service down");
    }
}

我得到这个异常

org.springframework.retry.ExhaustedRetryException: Cannot locate recovery method; nested exception is java.lang.IllegalArgumentException

我在这里错过了什么?

您使用的 Spring 框架是什么版本?

这是一个最近已修复的问题 SPR-16196