所以我正在构建一个Flask API,我有一个GET路由,它基本上会向另一个API发送5个请求来收集我正在合并和返回的数据。
像这样:
results = [requests.get('http://localhost:9000/ss/1'),
requests.get('http://localhost:9000/ss/2'),
requests.get('http://localhost:9000/ss/3'),
requests.get('http://localhost:9000/ss/4'),
requests.get('http://localhost:9000/ss/5')]
问题是每个请求大约需要2秒钟,因此需要10秒钟才能停机。如何使用不同的线程使所有请求异步,这样整个过程大约需要2秒?然后我如何告诉API在它们全部加载时开始合并它们?
非常感谢任何帮助!
答案 0 :(得分:0)
您可以使用最初基于我认为和请求的gevent的grequests
包(https://pypi.python.org/pypi/grequests)。
代码简单如下:
urls = [url1,url2,...]
#prepare the shells
shells = (grequests.get(u) for u in urls)
#start all requests at the same time
responses = grequests.map(shells) #will output a list of responses that you can access