接口调用失败重试机制
递归方式
private static Map retryRecursion(String email,String allException,int times) {
Map asd = new HashMap<>();
try {
String[]sendEmail = {"pemarket10@zero2ipo.com.cn","pemarket11@zero2ipo.com.cn","pemarket12@zero2ipo.com.cn","pemarket13@zero2ipo.com.cn","pemarket14@zero2ipo.com.cn",
"pemarket15@zero2ipo.com.cn","pemarket16@zero2ipo.com.cn","pemarket17@zero2ipo.com.cn","pemarket18@zero2ipo.com.cn","pemarket19@zero2ipo.com.cn","pemarket20@zero2ipo.com.cn"};
asd = EmailUtils.sendEmail(email, allException, "投资人行为异常预警", sendEmail[(int)(Math.random()*11)], "");
if (asd.get("sendstatus")==null || !"1".equals(asd.get("sendstatus"))) {
throw new IOException(asd.get("sendstatus"));
}
return asd;
} catch (Exception e) {
times--;
log.error("重试"+(5-times)+"次,错误信息:"+asd);
//重试次数到了
if (times <= 0) {
logger.error("重试次数用完,未正确调用邮件服务");
return null;
}
//休眠一会
try {
TimeUnit.MILLISECONDS.sleep(50);
} catch (InterruptedException e1) {
}
//重试
return retryRecursion(email,allException,times);
}
}