【问题标题】:How to run python flask in multiprocessing without waiting another process closed如何在多处理中运行python烧瓶而不等待另一个进程关闭
【发布时间】:2017-11-19 07:02:16
【问题描述】:

我运行另一个 gtk 窗口来显示我的应用程序,同时我想运行 Flask.run(host:'0.0.0.0')。当我关闭运行我的应用程序的 gtk.window 时,Flask 仍在处理。有人可以帮忙吗?

这里是代码:

import multiprocessing
import opx
import app

def worker(file):
    if file == 'opx':
    opx.main()
    else :
    app.apx.run(host='0.0.0.0') 

if __name__ == '__main__':
    files = ["opx","app.py"]
    for i in files:
        p = multiprocessing.Process(target=worker(i))
        p.start()
    p.join()

【问题讨论】:

  • 为什么是multiprocessing,你有没有考虑将它部署在tornadogevent 上?
  • 海弗兰克,感谢您的回复。我已经在龙卷风上尝试过,但我仍然坚持下去。你可以给我一个例子吗?我是 python 新手...

标签: python python-2.7


【解决方案1】:

这里有几种组合:

from flask import Flask
from tornado.wsgi import WSGIContainer
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    http_server = HTTPServer(WSGIContainer(app))
    http_server.listen(8000)
    IOLoop.instance().start()

Flask with Gevent

Flask with Tornado

在提出问题之前,您应该做更多的研究。 (因为反复出现的问题会导致社区混乱)

【讨论】:

  • 别怎么说...非常感谢弗兰克...现在运行完美...
  • 我发现它与子流程完美结合
  • 如果我添加一个打印语句作为最后一行,它永远不会被打印。即烧瓶正在阻塞模式下运行。问题不就是如何让它在非阻塞模式下运行吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-31
  • 2021-12-05
  • 1970-01-01
  • 1970-01-01
  • 2014-05-31
  • 2010-10-07
相关资源
最近更新 更多