如何在`@Backoff` 注释中使用属性文件中的属性来自定义延迟时间?

问题描述

如何在 @Backoff 注释中使用属性文件中的属性自定义延迟时间? 此属性仅将常量作为值。 我尝试使用构造函数注入初始化 someProperty 字段,但没有帮助,IntellijIDEA 显示一条消息:“属性值必须是常量”。

代码无法编译:

public class SomeClass {

    private final long someProperty;

    public SomeClass (@Value("${someProperty}") Long someProperty) {
        this.someProperty = someProperty;
    }

    @Retryable(value = RuntimeException.class,maxAttempts = 2,backoff = @Backoff(delay = someProperty))
    public SomeObject getSomeObject() {
        return new SomeObject();
    }
}

我可以像这样使用 delayExpression 属性吗:

@Retryable(value = RuntimeException.class,backoff = @Backoff(delayExpression = "${someProperty}"))

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)