java - 如何在Spring Retry中打开和关闭@Recover方法?

标签 java spring spring-retry

我希望根据属性文件中的标志打开/关闭@Recover方法。如何做到这一点?

实际上,我没有使用注释(@Retryable/@Recover),而是使用RetryTemplate

解决方案

我使用以下方法作为所有恢复调用的包装方法。

private <T> T genericRecover(RetryContext context) {
    if(this.useRecoverMethod) {
        return null;
    }

    throw new RuntimeException(context.getLastThrowable());
}

此处,useRecoverMethod boolean 标志是从属性文件中读取的。

public Resource<Camera> myRetyableMethod(Long cameraId) {

    return retryTemplate.execute(context -> anApiCallMethod(param),
                                    context -> genericRecover(context));
}

最佳答案

这不可能。

但是,当然,您的 @Recover 方法可以根据属性重新引发(或不引发)异常。

关于java - 如何在Spring Retry中打开和关闭@Recover方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54141284/

相关文章:

java - 根据失败 Actor 的策略决策

java - OpenNLP 分类器版本 1.8

spring - Grails 2.3.7重大更改

Spring 批处理 : Retry job if does not complete in particular time

java - ScrollView 在 android 中不完全滚动

java - Spring 数据 jpa。返回 Map 作为 group by 操作的结果

java - Spring Boot 和 PostgreSQL 中文件 data.sql 中错误的 SQL 语句语法

java - 针对特定条件的 Spring @Retryable

spring-retry - @Retryable 是否可以与 JDK 动态代理一起使用?

java - 将大文件转换为Java中的base64表示;内存不足异常