0

音楽を提供する小さな django プロジェクトを作成しました。ストリーミング部分も含め、すべてが django を経由します (プロジェクトは非常に小さく、最大 2 ~ 3 ユーザーです)。

プロジェクトを自己完結型にしたいので、トルネードをWebサーバーとして使用しています。私は次のようなものを使用しています:

os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'
wsgi_app = tornado.wsgi.WSGIContainer(
    django.core.handlers.wsgi.WSGIHandler())

tornado_app = tornado.web.Application([
    (r'/static/(.*)', tornado.web.StaticFileHandler, {'path': STATIC_DIR}),
    (r'.*', tornado.web.FallbackHandler, dict(fallback=wsgi_app)),
])
server = tornado.httpserver.HTTPServer(tornado_app)                                                                                                      
server.listen(8888)
tornado.ioloop.IOLoop.instance().start()

トルネードは出力をバッファリングするようですが、その結果、音楽のストリーミングはできません。この動作を変更する方法はありますか? または、wsgi アプリケーションと静的ファイルの両方を提供できる Python の別の Web サーバーはありますか?

EDIT:いくつかの調査の後、問題はおそらくにあると結論付けましたWSGIContainer応答の定義でWSGIContainerは、バッファに読み込まれてからクライアントに書き込まれるようです。WSGIContainerオリジナルに基づいて自分で作成する代わりに、それを行うより良い方法はありますか?

4

1 に答える 1

0

この問題から、tornado は私が必要としているサーバーに適していないようです。おそらく、すぐに使える CherryPy を使用するつもりです。

于 2013-02-12T22:34:35.240 に答える