首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将延迟参数化“退避弹簧引导”重试

如何将延迟参数化“退避弹簧引导”重试
EN

Stack Overflow用户
提问于 2022-03-22 16:00:02
回答 2查看 1.2K关注 0票数 0

我不能用我的财产作为标号来拖延:

代码语言:javascript
运行
复制
 @Value("${delayReintentos}")
 private long delay;

@Retryable(value = { SQLException.class }, maxAttempts = 3, backoff = @Backoff(delay = delay))
    public String simpleRetry() throws SQLException {
        counter++;
        LOGGER.info("Billing Service Failed "+ counter);
        throw new SQLException();

    }

Java11,弹簧引导

EN

回答 2

Stack Overflow用户

发布于 2022-03-22 16:25:28

使用delayExpression代替

代码语言:javascript
运行
复制
/**
 * An expression evaluating to the canonical backoff period. Used as an initial value
 * in the exponential case, and as a minimum value in the uniform case. Overrides
 * {@link #delay()}.
 * @return the initial or canonical backoff period in milliseconds.
 * @since 1.2
 */
String delayExpression() default "";

参见自述文件:https://github.com/spring-projects/spring-retry#readme

您可以使用SpEL或属性占位符。

代码语言:javascript
运行
复制
@Backoff(delayExpression = "${my.delay}",
                        maxDelayExpression = "@integerFiveBean", multiplierExpression = "${onePointOne}")
票数 0
EN

Stack Overflow用户

发布于 2022-03-22 16:27:19

通过在大括号中包装属性名来尝试这一点。

代码语言:javascript
运行
复制
@Retryable(value = SQLException.class, maxAttempts = 3, backoff = @Backoff(delayExpression = "${delay}")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71575196

复制
相关文章

相似问题

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