网络对接出现请求异常的处理方法
前言
下面文档来源于网络,总姐的比较好,项目中也是这样使用的
1.增加超时时间
假设A系统有个方法methodA,会调用B系统的methodB这个http接口,如果mehodA不追求超快的响应速度,那么你在调用methodB这个http接口时,可以增长超时时间,例如10秒超时。因为经常在某些时刻,由于网络原因或者系统原因,调用method会超时的。
2.使用异步机制
如果你的业务方法中,需要调用对方的http接口,如果这个http接口不影响主流程的,那么可以使用一个线程,异步调用对方的http接口,并把超时时间设置长一些。由于使用了异步,主流程会立刻继续走的。
2.尝试多调用一次
2.1、设置请求次数参数,防止重复请求
如果第一次调用methodB超时了,那么你可以尝试多调用一次。当然前提是,methodA不追求超快的响应时间。注意:调用多次不代表重复调用 制造脏数据
3.使用待处理队列
2.1、放到队列中,即使下次再来查询也会知道我们已经发出这个任务申请了
如果methodA需要很快的响应速度,那么当调用methodB接口超时时,可以使用一个队列存储本次失败的记录,然后使用一个job每隔一段时间去扫这个队列,看看是否有待处理的数据。 备注:如果对方系统挂掉了,使用待处理队列的方式,比较合适。
4.回滚数据
catch这个超时异常,然后记录日志后,抛出这个异常,并把之前的数据回滚。让对方的系统重新调用。 备注:宁愿没有数据,也不要存储脏数据。
如果满意,请打赏博主任意金额,感兴趣的在微信转账的时候,添加博主微信哦, 请下方留言吧。可与博主自由讨论哦
支付包 | 微信 | 微信公众号 |
---|---|---|