Flask 是一个单线程网络服务器。但我想让它在处理一些耗时的请求时不会阻塞。
例如:
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
运行,但它仍然显示为同步。
最佳答案
This snippet是一个很好的起点。
您还应该查看 Celery或 RQ ,它们适合用于大型项目,更重要的是它们不是特定于 Flask 的。
他们也各自集成了 Flask,Flask-Celery和 Flask-RQ .
关于python - 如何使 flask 异步响应客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18975851/