一尘不染

Flask and Tornado Applciation无法处理多个并发请求

flask

我正在用Tornado运行一个简单的Flask应用程序,但是视图一次只能处理一个请求。如何使其处理多个并发请求?

我使用的解决方法是派生并使用多个进程来处理请求,但是我不喜欢这种解决方案。

from flask import Flask

app = Flask(__name__)

@app.route('/flask')
def hello_world():
    return 'This comes from Flask ^_^'

from tornado.wsgi import WSGIContainer
from tornado.ioloop import IOLoop
from tornado.web import FallbackHandler, RequestHandler, Application
from flasky import app

class MainHandler(RequestHandler):
  def get(self):
    self.write("This message comes from Tornado ^_^")

tr = WSGIContainer(app)

application = Application([
    (r"/tornado", MainHandler),
    (r".*", FallbackHandler, dict(fallback=tr)),
])

if __name__ == "__main__":
    application.listen(8000)
    IOLoop.instance().start()

阅读 467

收藏
2020-04-07

共1个答案

一尘不染

你应该使用专用的WSGI服务器,例如uWSGI或Gunicorn,并将其配置为使用多个工作线程。不要将Tornado用作WSGI服务器。

2020-04-07