python-3.x - 有没有办法在线程上运行烧瓶?
问题描述
为了实现一个公开 REST-api 并同时运行另一个功能的系统,我尝试像下面这样使用烧瓶:
app = Flask(__name__)
app.run(threaded=True)
foo()
但 foo 函数永远不会启动。
我想了解如何解决问题或获得实现它的替代选项。
谢谢!
解决方案
转到Flask.run()的文档,我们看到提供的选项(例如线程)被转发到底层函数werkzeug.run_simple()
。的文档说明了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()
这将在后台启动您的烧瓶应用程序,让您在启动应用程序后运行其他功能。
推荐阅读
- jquery - 使用jquery隐藏模式弹出窗口中的按钮?
- python - 封闭的 WTForms 中的 SelectField 在提交时丢失了他们的选择选项
- android - 无法在 android studio 中加载 tensorflow tflite 模型
- node.js - 如何让 babel 尊重链接模块的主权?
- reactjs - 使用 react-native 生成数据矩阵(ECC200 代码)的最佳简便方法?
- html -
- material-ui - 是否可以在 react-hook-form 中获取一组复选框以绑定到单个数组?
- machine-learning - 为什么宽度是此代码中的第一个维度?
- excel - Excel VBA Chrome Selenium 无法点击按钮
- c# - C# 引用类型替代值类型