【问题标题】:is there a way to run flask on a thread?有没有办法在线程上运行烧瓶?
【发布时间】:2020-03-10 06:28:25
【问题描述】:

为了实现一个公开 REST-api 并同时运行另一个功能的系统,我尝试像下面这样使用烧瓶:

app = Flask(__name__)
app.run(threaded=True)
foo()

但是 foo 函数永远不会启动。

我想了解如何解决问题或获得替代方案来实施它。

谢谢!

【问题讨论】:

  • 你是做什么的?

标签: python-3.x multithreading flask


【解决方案1】:

转到Flask.run() 的文档,我们看到提供的选项(例如线程)被转发到底层函数werkzeug.run_simple()documentation for werkzeug.run_simple()threaded 参数的说明如下:

线程化——进程是否应该在单独的线程中处理每个请求?

这意味着每个 REST 调用都将在单独的线程中处理,但不会在后台启动服务器(这似乎是您想要的)。相反,您可以使用多处理中的 Process 类:

from flask import Flask
app = Flask(__name__)

from multiprocessing import Process
p = Process(target=app.run)
p.start()
foo()

这将在后台启动您的烧瓶应用程序,让您在启动应用程序后运行其他功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-19
    • 2022-01-02
    • 2021-01-17
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    • 2022-12-01
    • 2019-10-05
    相关资源
    最近更新 更多