简单的请求重试写法


废话少说,直接上代码

import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;

@Slf4j
public class RetryTest {

    private static final int GET_NAME_TRY_TIMES = 3;// 尝试获取次数

    /**
     * 获取文件名称,如果获取不到 默认重试三次
     *
     * @param args
     */
    public static void main(String[] args) {
        String interfaceCode = "JKDZ";
        log.info("银行渠道编号[{}],进入下载业务对账文件操作>>>", interfaceCode);
        try {
            String fileName = "";
            int retryTime = 0;
            while (StringUtils.isEmpty(fileName) && retryTime < GET_NAME_TRY_TIMES) {
                try {
                    retryTime++;
                    fileName = getFileName();
                } catch (Exception e) {
                    //失败了 不立即重试
                    log.error("获取文件名称失败", e);
                    Thread.sleep(10000);
                }
            }
        } catch (Exception e) {
            log.error("获取文件名称失败", e);
        }
    }

    private static String getFileName() {
        return "test";
    }

}