【发布时间】:2013-09-29 07:54:08
【问题描述】:
Flask 是一个单线程 Web 服务器。但是我想让它在处理一些耗时的请求时不会阻塞。
例如:
from flask import Flask
import time
import sys
app = Flask(__name__)
@app.route("/")
def hello():
print "request"
sys.stdout.flush()
for _ in range(10000000):
for j in range(10000000):
i = 1
return "Hello World!"
if __name__ == "__main__":
app.run(debug=True)
我希望当每个客户端请求服务器时,它总是立即在控制台上输出“请求”。我尝试了gunicorn 并使用gunicorn -k gevent -w 4 a:app 运行,但它仍然显示为同步的。
【问题讨论】:
-
“Flask 是单线程 Web 服务器。” 这是不正确的。 Flask 是一个框架,并具有帮助您创建调试服务器的功能。那debug server can use multiple threads or processes。 “我希望当每个客户端向服务器发出请求时,它总是立即在控制台上输出“请求”......但它仍然显示为同步的”您得到的确切输出是什么?