使用 Spring Retry,是否可以将退避值作为函数参数传递?
With Spring Retry, is it possible to pass the backoff value as a function parameter?
目前我正在使用以下注释来控制退避和重试参数。
@Retryable(value = { RemoteCallException.class },
maxAttemptsExpression = "{@Properties.getRetries()}",
backoff = @Backoff(delayExpression = "{@Properties.getBackoff()}"))
但是,我的代码中有很多不同的 Rest 调用,我希望函数调用者能够在运行时指定退避,而不是被限制在初始化时指定。这可能吗?我试图避免在 @Recover 函数中使用 sleep 语句,因为我想使用内置于 Spring Retry API.
中的回退
目前不可能;表达式仅在初始化期间计算一次。
很巧,我前几天为此开了一个new feature request
您可以使用自定义重试策略连接到自定义拦截器并通过 interceptor
属性.
传入 @Retry
请参阅我的 SO answer linked in that issue 了解有关如何执行此操作的更多详细信息。
目前我正在使用以下注释来控制退避和重试参数。
@Retryable(value = { RemoteCallException.class },
maxAttemptsExpression = "{@Properties.getRetries()}",
backoff = @Backoff(delayExpression = "{@Properties.getBackoff()}"))
但是,我的代码中有很多不同的 Rest 调用,我希望函数调用者能够在运行时指定退避,而不是被限制在初始化时指定。这可能吗?我试图避免在 @Recover 函数中使用 sleep 语句,因为我想使用内置于 Spring Retry API.
中的回退目前不可能;表达式仅在初始化期间计算一次。
很巧,我前几天为此开了一个new feature request
您可以使用自定义重试策略连接到自定义拦截器并通过 interceptor
属性.
@Retry
请参阅我的 SO answer linked in that issue 了解有关如何执行此操作的更多详细信息。