使用Spring Retry,是否可以将回退值作为函数参数传递?

使用Spring Retry,是否可以将回退值作为函数参数传递?,spring,spring-retry,Spring,Spring Retry,目前,我正在使用以下注释来控制回退和重试参数 @Retryable(value = { RemoteCallException.class }, maxAttemptsExpression = "{@Properties.getRetries()}", backoff = @Backoff(delayExpression = "{@Properties.getBackoff()}")) 然而,我的代码中有很多不同的Rest调用,我希望函数调用方能

目前,我正在使用以下注释来控制回退和重试参数

@Retryable(value = { RemoteCallException.class },
            maxAttemptsExpression = "{@Properties.getRetries()}",
            backoff = @Backoff(delayExpression = "{@Properties.getBackoff()}"))

然而,我的代码中有很多不同的Rest调用,我希望函数调用方能够在运行时指定回退,而不是在初始化时被限制指定回退。这可能吗?我试图避免在@Recover函数中使用sleep语句,因为我想使用内置在Spring重试API中的回退;在初始化期间,表达式只计算一次

巧合的是,我在几天前为此开了一家公司

您可以使用连接到自定义拦截器并通过
拦截器
属性传入
@retry
的自定义重试策略来执行此操作


请参阅my,了解有关如何执行此操作的更多详细信息

我是否可以使用新的BackoffPolicy编辑每个函数调用的类的重试模板?否;如果您有多个并发调用者,则不会。您需要一个自定义策略,可能需要使用
ThreadLocal
来存储要用于该调用的实际策略。