Spring Kotlin故障保护新参数
我试图在一个带有Kotlin的Spring引导项目上使用故障保护实现重试机制。如果不满足所需的条件,我希望更改函数参数,并再次尝试产生任何结果 我的政策执行如下:Spring Kotlin故障保护新参数,spring,spring-boot,kotlin,retry-logic,Spring,Spring Boot,Kotlin,Retry Logic,我试图在一个带有Kotlin的Spring引导项目上使用故障保护实现重试机制。如果不满足所需的条件,我希望更改函数参数,并再次尝试产生任何结果 我的政策执行如下: val retryPolicy: RetryPolicy<ApiResponse> = RetryPolicy<ApiResponse>() .withMaxAttempts(1) .handleResultIf { result -> re
val retryPolicy: RetryPolicy<ApiResponse> = RetryPolicy<ApiResponse>()
.withMaxAttempts(1)
.handleResultIf { result ->
result.retriable // Boolean value if conditions are met or not.
}
主要问题是,Failsafe工作没有任何问题,并重试函数调用并生成结果,但在API响应中,我返回参数,由于参数是关键的,必须提供信息,我必须返回修改后的参数,这就是Failsafe失败的地方。它总是返回我调用的第一个参数。例如,它将新值返回为2而不是3
提前谢谢
return Failsafe.with(myPolicy.retryPolicy)
.onSuccess { response -> response.result }
.onFailure { myFunctionCall(myParams.copy(paramX = newValue)) } // newValue = 3
.get { _ -> myFunctionCall(params) } // params.newValue = 2