前言

Github:https://github.com/HealerJean

博客:http://blog.healerjean.com

1、网络对接出现请求异常的处理方法

1.1、增加超时时间

假设A系统有个方法methodA,会调用B系统的methodB这个http接口,如果mehodA不追求超快的响应速度,那么你在调用methodB这个http接口时,可以增长超时时间,例如10秒超时。因为经常在某些时刻,由于网络原因或者系统原因,调用method会超时的。

1.2、使用异步机制

如果你的业务方法中,需要调用对方的http接口,如果这个http接口不影响主流程的,那么可以使用一个线程,异步调用对方的http接口,并把超时时间设置长一些。由于使用了异步,主流程会立刻继续走的。

1.3、尝试多次调用

如果第一次调用methodB超时了,那么你可以尝试多调用一次。调用多次不代表重复调用 制造脏数据

1.4、回滚数据

1、抛出异常,回滚数据,catch这个超时异常,然后放到队列中准备重新调用,宁愿没有数据,也不要存储脏数据,

2、设置请求次数参数requestNo,防止重复请求讲这个失败的请求放入数据库或者队列中,即使下次再来查询也会知道我们已经发出这个任务申请了,然后使用一个定时器每隔一段时间去扫这个队列,看看是否有待处理的数据。 (比如我们调用微信支付系统的时候,如果失败了,将记录保存起来准备下次继续执行)


ContactAuthor