前段时间在做一个项目,项目本身没什么难度,只是数据存在一个数据接口服务商那儿,这就意味着,前端获取数据需要至少两次http请求,第一次是前端到后端的请求,第二次是后端到数据接口的请求。有时,后端接收到前端的一次请求后,可能需要对多个接口进行请求,按照传统串行执行请求的方法,用户体验肯定是非常糟糕了,而且对计算资源也是极大的浪费,正好前段时间学习了协程和线程的知识,所以我花了一些时间,对几种可行方案进行了测试对比。一开始我使用真正的网络io进行测试,发现这种方法受网络环境影响比较大,为了公平起见,用sleep(0.02)来代替网络io,接下来介绍方案和测试结果。
基本方案:串行执行
import time
def wget(flag):
time.sleep(0.02) #模拟网络io
print(flag)
count = 100 #进行100次请求
start = time.time() #开始时刻