0

我有这个用 django 函数包装的龙卷风应用程序作为 WSGI 应用程序(在 Windows 中使用)

from django.core.wsgi import get_wsgi_application
from django.conf import settings
from waitress import serve
settings.configure()

wsgi_app = tornado.wsgi.WSGIContainer(django.core.wsgi.WSGIHandler())
def tornado_app():  
    url = [(r"/models//predict", PHandler),
           (r"/models//explain", EHandler),
           ('.*', tornado.web.FallbackHandler, dict(fallback=wsgi_app))]
    return Application(url, db=ELASTIC_URL, debug=options.debug, autoreload=options.debug)

if __name__ == "__main__":
    application = tornado_app()
    http_server = HTTPServer(application)  
    http_server.listen(LISTEN_PORT)
    IOLoop.current().start() 

不知道如何使用女服务员,为了使用女服务员服务,我尝试了 http_server = serve(application),服务器正在启动,现在确定它是否正确,到达端点时出错

在此处输入图像描述

4

1 回答 1

1

waitress是一个 WSGI 服务器;Tornado 不基于或不兼容 WSGI。您不能用于waitress服务应用程序的 Tornado 部分。

要在一个线程中同时服务 Tornado 和 WSGI 应用程序,您需要像在原始示例中所做的那样使用 Tornado 的 HTTPServer。为了获得更好的可扩展性,我建议将应用程序的 Tornado 和 Django 部分拆分为单独的进程,并在它们前面放置一个像 nginx 或 haproxy 这样的代理。

于 2020-06-19T14:48:51.003 回答