使用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
来存储要用于该调用的实际策略。