如何使@Retryable可配置

如何使@Retryable可配置,第1张

如何使@Retryable可配置

业务需要在消费MQ消息时提供重试机制,我准备采用Spring-retry来实现这个功能,并且希望在使用@Retryable能够进行自定义配置,但在使用@Value方式来注入配置属性时却得到了如下提示:

Attribute value must be constant

Spring-retry要求配置的参数必须为常量,即在运行前就确定的值

后经过查阅资料得知,在Spring-retry 1.2版本后提供了通过SPEL实现可配置的方式,代码参考如下:

@Retryable(maxAttemptsexpression = "${eci.mq.retryable.maxAttempts}",
        backoff = @Backoff(
                delayexpression = "${eci.mq.retryable.delay}",
                maxDelayexpression = "${eci.mq.retryable.maxDelay}",
                multiplierexpression = "${eci.mq.retryable.multiplier}"))
public  void retryTask(Runnable retryableTask) {
    retryableTask.run();
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5482077.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存