Я создал небольшой проект django для обслуживания музыки. Все проходит через джанго, даже потоковая часть (проект действительно маленький, максимум 2-3 пользователя).Небуферизованный выход из торнадо с использованием wsgi
Теперь я хочу сделать проект автономным, поэтому я использую торнадо в качестве веб-сервера. Я использую что-то вроде следующего:
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()
Торнадо, хотя, кажется, буфер вывода и в результате потоковой музыки не представляется возможным. Есть ли способ изменить это поведение? Или есть еще один веб-сервер в python, который может служить как для приложения wsgi, так и для статических файлов?
EDIT: После некоторых исследований я пришел к выводу, что проблема, скорее всего, заключается в WSGIContainer
. Кажется, что в the definition of WSGIContainer
ответ считывается в буфер, а затем записывается клиенту. Итак, вместо того, чтобы катить мой собственный WSGIContainer
на основе оригинала, есть ли лучший способ сделать это?