python - 如何使 flask 异步响应客户端?

标签 python flask gunicorn

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是一个很好的起点。

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

他们也各自集成了 Flask,Flask-CeleryFlask-RQ .

关于python - 如何使 flask 异步响应客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18975851/

相关文章:

python - 覆盖类变量和并发 Flask 请求

使用 Tkinter 的带有 GUI 的 Python 扫雷游戏如何正确显示在按钮上?

python - 将 pandas 列从 15 年 4 月 3 天的字符串转换为 15.3 年

python - 控制函数中返回变量的数量

python - 如何在 Flask 上运行子进程

python - Flask-Admin:路由到应用过滤器的模型 View

django - nginx:在 "localhost:8004"指令的 "listen"中找不到 [emerg] 主机

python - 使用 Python 客户端在 SQL Server 中执行存储过程

python - 在 Windows 上与女服务员一起服务 Flask 应用程序

django - 使用 unix 套接字时 Django ALLOWED_HOSTS 应该是什么?