我以前问过Make a non-blocking request with requests when running Flask with Gunicorn and Gevent,现在我有一个关于相关主题的更高级的问题。在
我的Flask应用程序将接收一个请求,进行一些处理,然后向两个不同的慢速外部端点发出两个不同的请求,每个端点需要2秒钟的响应时间。我的烧瓶代码如下:
import requests
@app.route('/do', methods = ['POST'])
def do():
resulta = requests.get('slow api a') // takes 2 seconds to response
resultb = requests.get('slow api b') // takes 2 seconds to response
return resulta.content + resultb.content
我用我的枪
^{pr2}$有了这段代码,对于每个发送到这个web服务的请求,我需要等待4秒来响应(它先发送到“slow api a”,然后再发送“slow api b”)。我如何修改这个例子,使发送到“slow api a”和“slow api b”的请求可以同时发送,这样我就可以在2秒钟内从这个web服务获得响应,而不是4秒钟?在
您应该使用多处理或线程。在
在[根@node01opt]#时间python r.py
实0m3.028s 用户0m0.021s 系统0m0.005s [根@node01选择]
相关问题 更多 >
编程相关推荐