手记

重试获取请求


 public String retryHeadPhoto(String orderNo, String appId, String signTicket, String applyNo) {

    try {

        // 重试3次, 或者拿到照片为止, 期间休眠2秒!

        String photoId = null;

        int times = FaceConst.MAX_RETRY; // MAX_RETRY=3

        do {

            // 1.第一次远程调用获取数据

            String rscResult = fetchRemoteResource(orderNo, signTicket, appId);

            ResourceResponse rscResp = JSONUtil.safeRead(rscResult, ResourceResponse.class);

            // 1.1 提取请求中需要判断的核心数据

            String headPhoto = rscResp.getResult().getHeadPhoto();

            if (StringUtils.isNotBlank(headPhoto)) {

                // 有效数据-上传处理

                photoId = FtpHelper.uploadFileToFtp(headPhoto, applyNo, FtpHelper.PHOTO, "png"); // 上传至系统

            }

            times--; // 减少一次, 休眠2秒重试

            if(StringUtils.isBlank(photoId)){

                TimeUnit.SECONDS.sleep(FaceConst.GAP_SEC); // 间隔2秒

            }

        } while (times > 0 && StringUtils.isBlank(photoId));

        return photoId;

    } catch (Exception e) {

        LOGGER.error("idcardImage_send_return_idcardrscResp_isNotSuccess, use original imageid:{}", idcardImageId, e);

    }

    return null;

}

©著作权归作者所有:来自51CTO博客作者海德堡绝尘的原创作品,如需转载,请注明出处,否则将追究法律责任


0人推荐
随时随地看视频
慕课网APP