第三方接口一次只能请求一个平台的数据,但需求又要确保实时性,如何实现?
前两天遇到了这样一个产品的需求:我们的数据需要去第三接口调取,但这个接口一次只能返回一个平台的数据,总共约有100个平台左右,考虑用循环的方式一个一个请求,结果约为60秒,但需求要求每五秒刷新一次,非常不现实,怎么办?
简单思考一下,很容易就得出同时请求这100个平台的数据,这样就只需要不到一秒钟即可,那么怎么实现呢?
下面谈谈个人的看法,核心解决方案就是多线程或者异步
1.php多进程
优点:方便实现 缺点:内存占用较高,且切换上下文是一笔开销
2.python异步请求
优点:占用资源少,一个进程完成调用 缺点:无
3.go多线程
优点:先天优势,书写方便 缺点:占用内存比较大
综合上面考虑,其实第二种方法是最好的,但是截至书写本文之前,我采用了第三种方式,内存占用约300M,但是请求极快,其实也可以考虑用第二种方式,这是最好的实现,等我测试后再来更新