补偿重试
简介
补偿重试即补偿接口支持失败重试。当补偿接口内出现异常时,可依据重试相关配置多次尝试补偿。
参数配置
补偿重试相关配置参数如下:
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。