死循环引起的血案
2016-03-28 20:58
232 查看
由于死循环,下午调了一下午程序。
问题是这样的,我们接口会以post方式调第三方的http接口,为了保证调用第三方接口的成功率,报错的情况下会试错5次,代码以下
//商家接口抛错时重试5次
while (times < 5) {
try {
if (!StringUtils.isBlank(url)) {
resp = WebUtils.doPost(url, params, NOTIFY_CONNECT_TIMEOUT, NOTIFY_READ_TIMEOUT);
//请求一次,避免死循环
times = 5;
}
} catch (Exception e) {
times++;
logger.error("notifyStockChange Exception but retry post! skuId is " + skuId + " ,count is " + i + " ,type is " + type, e);
if(5 == times) {
logger.error("notifyStockChange Exception error! skuId is " + skuId + " ,count is " + i + " ,type is "
+ type, e);
return false;
}
}
}
犯的低级错误是在if里面漏了
//请求一次,避免死循环
times = 5;
导致程序一直在post第三方接口,陷入死循环。。。
问题是这样的,我们接口会以post方式调第三方的http接口,为了保证调用第三方接口的成功率,报错的情况下会试错5次,代码以下
//商家接口抛错时重试5次
while (times < 5) {
try {
if (!StringUtils.isBlank(url)) {
resp = WebUtils.doPost(url, params, NOTIFY_CONNECT_TIMEOUT, NOTIFY_READ_TIMEOUT);
//请求一次,避免死循环
times = 5;
}
} catch (Exception e) {
times++;
logger.error("notifyStockChange Exception but retry post! skuId is " + skuId + " ,count is " + i + " ,type is " + type, e);
if(5 == times) {
logger.error("notifyStockChange Exception error! skuId is " + skuId + " ,count is " + i + " ,type is "
+ type, e);
return false;
}
}
}
犯的低级错误是在if里面漏了
//请求一次,避免死循环
times = 5;
导致程序一直在post第三方接口,陷入死循环。。。
相关文章推荐
- 查找(Searching)
- 《MySQL必知必会学习笔记》:聚集函数
- FragmentStatePagerAdapter.notifyDataSetChanged不刷新页面的解决的方法
- 栈的运用(算数表达式求值的算符优先算法 十以内简单版)
- 排序算法-及其Java代码实现
- 解析机器中加减法对于二进制补码的运用(附python代码)
- 《leetCode》:Find the Duplicate Number
- 【LeetCode】3. Longest Substring Without Repeating Characters的两种解法
- Java编程思想学习笔记-第九章 接口
- CocoaPods安装及使用详情
- K-th Number(第k大数)
- 方法封装和String语句
- 《leetCode》:Repeated DNA Sequences
- PHP中其他类型转化为Bool类型的变化情况
- java中的移位运算符:<<,>>,>>>总结
- Swift里通知的使用NSNotificationCenter
- Atitit.Gui控件and面板----数据库区-mssql 2008 权限 配置 报表查看成员
- 花开花落,我们都很渺小
- Java_chapter11_继承和多态
- 链表中倒数第K个节点