第三方接口一次只能请求一个平台的数据,但需求又要确保实时性,如何实现?

2018年8月3日 0 作者 筱枫

前两天遇到了这样一个产品的需求:我们的数据需要去第三接口调取,但这个接口一次只能返回一个平台的数据,总共约有100个平台左右,考虑用循环的方式一个一个请求,结果约为60秒,但需求要求每五秒刷新一次,非常不现实,怎么办?

简单思考一下,很容易就得出同时请求这100个平台的数据,这样就只需要不到一秒钟即可,那么怎么实现呢?

下面谈谈个人的看法,核心解决方案就是多线程或者异步

1.php多进程

优点:方便实现     缺点:内存占用较高,且切换上下文是一笔开销

2.python异步请求

优点:占用资源少,一个进程完成调用    缺点:无

3.go多线程

优点:先天优势,书写方便    缺点:占用内存比较大

综合上面考虑,其实第二种方法是最好的,但是截至书写本文之前,我采用了第三种方式,内存占用约300M,但是请求极快,其实也可以考虑用第二种方式,这是最好的实现,等我测试后再来更新