业务需要在消费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}")) publicvoid retryTask(Runnable retryableTask) { retryableTask.run(); }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)