补偿重试

简介

补偿重试即补偿接口支持失败重试。当补偿接口内出现异常时,可依据重试相关配置多次尝试补偿。

参数配置

补偿重试相关配置参数如下:

txle:
  compensable-retry:
    times: 3
    interval: 3

txle.compensable-retry.times - 重试次数,默认为3次。

txle.compensable-retry.interval - 重试间隔,单位秒,默认为3秒。

自动补偿重试支持

自动补偿目前已默认支持补偿重试机制。

手动补偿重试支持

因手动补偿接口由业务人员进行实现,故手动补偿的重试机制目前尚无法默认支持。但已提供相应解决方案,业务开发人员可按照如下步骤实现手动补偿的重试机制。

...
import com.github.rholder.retry.Retryer;
import org.springframework.beans.factory.annotation.Autowired;
...

/**
 * 业务接口类
 */
public class xxx {
    @Autowired
    private Retryer retryer;

    public xxx xxx_rollback(..) {
        try {
            retryer.call(() -> {
                // ********业务补偿核心代码 start***********
                // ....
                // ********业务补偿核心代码 end***********
            });
        } catch (java.lang.Throwable e) {
            // 补偿重试仍然失败后,需调用上报差错平台接口
        }
    }

}

注意事项

补偿代码只有抛出java.lang.Exception或其子类异常才会被重试。

若业务中含有自定义异常处理,则需满足继承java.lang.Throwable。

results matching ""

    No results matching ""