重试机制及等待时间

基本所有的系统现在不是使用网络通信就是会使用文件操作,很多的借口调用都是不可靠的,也即有可能调用返回出错,最先能想到的解决方案就是增加重试。从实现的难易程度排列

1. 出错立即重试

2. 出错重试,并增加重试次数

3. 出错重试前增加两个参数,重试次数和重试间隔时间

4. 对时间参数优化,在一个范围取随机值

5. 对时间参数优化,以衰减形式提供等待时间,像对数衰减1.2.4.8.16.32...

如果将第五种方案中的重试次数去掉,在出问题时就会感觉很酸爽了。最近就遇到一个问题,一个接口调用长时间出错,并且使用了第五种方案,但是将重试次数去掉了换成了死循环,在解决了调用出错的问题之后功能依然不可用。在定位原因是已经发现最后两次的重试间隔已经是9个小时了,也就是说下次重试要在18个小时之后了。。。。所以现在增加第六种方案:

6. 以无限循环方式重试,等待时间以衰减方式提供,但是达到一个值(例如10分钟,半个小时等)之后不再衰减

你可能感兴趣的:(重试机制及等待时间)