python - 线程 Flask 应用程序未按预期工作

标签 python flask

我希望我的 Flask 应用程序能够同时处理多个调用。 我一直在测试使用 threaded=Trueprocesses=3 和下面的代码运行但是当我对服务器进行两次调用时,后者总是必须等待第一个一个来完成。 我知道建议将应用程序部署在更复杂的 WSGI 容器上,但现在我只希望我的小应用程序能够同时处理 2 个调用。

from flask import Flask, Response, stream_with_context
from time import sleep
app = Flask(__name__)

def text_gen(message):
    for c in message:
        yield c
        sleep(1)

@app.route("/")
def hello():
    stream = text_gen('Hello World')
    return Response(stream_with_context(stream))

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=8080, debug=True, threaded=True)

最佳答案

@Lukas是对的。

我正在使用两个选项卡在 Google Chrome 中进行调试。显然,Chrome 试图通过对两个选项卡使用相同的套接字来变得聪明。在启动 Chrome 时,Chrome 如何处理可以使用 -socket-reuse-policy 标志更改。

更简单的测试方法是在每个选项卡中使用不同的主机名或使用 curl -N(-N 标志表示没有缓冲区可以查看流)。这样做确实按预期工作。

关于python - 线程 Flask 应用程序未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20959493/

相关文章:

python - cumsum 限制在一个范围内(python,pandas)

python - pycharm和flask自动重载和断点不起作用

初始化字典的 Python KeyError 异常

python - Conda 环境和 .BAT 文件

python - 当主线程调用 sys.exit() 时,守护线程是否会被终止?

Python:打印变量的名称和值?

python - 无法删除 pandas DataFrame 中的部分字符串

python - Flask - 如何使用 RotatingFileHandler 将 werkzeug 日志写入日志文件?

javascript - Python、Flask - 如何使用 DHTML uploader 加载文件

python - 使用 Flask 中的 JWT 扩展检查 API 响应消息的消息完整性