
前言:当我们调用第三方接口或者在同一个注册中心的其他服务的时候,由于一些原因没有返回成功的标识,需要尝试多次获取响应。
01
加入依赖
<dependency>
<groupId>org.springframework.retrygroupId>
<artifactId>spring-retryartifactId>
dependency>
02
手写代码实现
public class TestJob {
private static Logger logger = LoggerFactory.getLogger(TestJob.class);
private int cnt = 0;
public void retry(String params){
RetryTemplate oRetryTemplate = new RetryTemplate();
AlwaysRetryPolicy oRetryPolicy = new AlwaysRetryPolicy();
oRetryTemplate.setRetryPolicy(oRetryPolicy);
try {
Object obj = oRetryTemplate.execute(new RetryCallback
@Override
public Object doWithRetry(RetryContext context) throws Exception {
System.out.println(params + "----retry----" + context.getRetryCount());
doTask(params);
return "success";
}
}, new RecoveryCallback