如何异步地将瓶子响应给客户端?

Fra*_*eng 10 python flask gunicorn

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)
Run Code Online (Sandbox Code Playgroud)

我希望当每个客户端请求服务器时,它总是立即在控制台上输出"请求".我试过gunicorn并运行gunicorn -k gevent -w 4 a:app但它仍然显示同步.

Mar*_*zer 1

这个片段是一个很好的起点。

您还应该研究CeleryRQ,它们适合用于大型项目,更重要的是它们不是 Flask 特定的。

他们还分别集成了 Flask:Flask-CeleryFlask-RQ