Kotlin 故障安全新参数

问题描述

我正在尝试在带有 Kotlin 的 Spring Boot 项目上使用 Failsafe 实现重试机制。如果不满足所需条件,我想更改函数参数并重试以产生任何结果。

我的政策实施如下:

    val retryPolicy: RetryPolicy<ApiResponse> = RetryPolicy<ApiResponse>()
        .withMaxAttempts(1)
        .handleResultIf { result ->
            result.retriable // Boolean value if conditions are met or not.
        }

        return Failsafe.with(myPolicy.retryPolicy)
            .onSuccess { response -> response.result }
            .onFailure { myFunctionCall(myParams.copy(paramX = newValue)) } // newValue = 3
            .get { _ -> myFunctionCall(params) } // params.newValue = 2

主要问题是,Failsafe 工作没有任何问题,并重试函数调用并产生结果,但在 API 响应中,我返回了参数,并且由于参数至关重要且必须提供信息,因此我必须返回修改后的参数,并且这就是 Failsafe 失败的地方。它总是返回我调用的第一个参数。例如,它将 newValue 返回为 2 而不是 3。

提前致谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)