如何添加一般任务为Django后端运行的Tornado Web服务器中的模块允许多个异步请求

2024-06-25 22:55:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我第一次尝试使用nssm以服务模式(未登录)在microsoftwebserver上部署django网站。你知道吗

要这样做,我似乎不能使用通常的

python manage.py runserver 0.0.0.0

所以我试着添加一个新的龙卷风.py在我的项目中,nssm会指出:

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

from wsgi import application
from mySite.settings import *


class MainHandler(RequestHandler):
    def get(self):
        self.write("Hi Tornado")

tr = WSGIContainer(application)
app = Application([
    (r"/tornado", MainHandler), 
    (r"/static/(.*)", StaticFileHandler, {'path': STATIC_ROOT}), 
    (r"/media/(.*)", StaticFileHandler, {'path': MEDIA_ROOT}),     
    (r".*", FallbackHandler, dict(tr)),     
])


if __name__ == '__main__':
    app.listen(8000)
    IOLoop.instance().start()

指向此文件的nssm使部署正常,但不幸的是,我有一些长请求调用后端django中的其他API,当我调用其中一个长服务时,不可能发出其他请求,即我必须等待第一个请求完成。你知道吗

从我在这个网站上看到的关于同一个问题的其他问题来看,我需要在下面添加龙卷风装饰器:

@gen

我尝试了几个选择,但都没有成功,也找不到一个与django合作的例子。你知道吗

我只将django用于mvc框架,但没有使用orm或auth。你知道吗

我不得不保留django,因为它有很多工作,而microsoft Web服务器/nssm是我公司的最佳实践,但是tornado能在这方面帮助我吗?我看的方向对吗?你知道吗

提前感谢所有愿意花时间帮助我解决这个问题的人。你知道吗


Tags: djangofrompyimportwsgiapplication网站部署
1条回答
网友
1楼 · 发布于 2024-06-25 22:55:44

注意^{} docs上的警告:对于基于WSGI的应用程序,Tornado的WSGIContainer没有并行性,几乎可以肯定是比其他WSGI服务器(如gunicornuwsgi)更糟糕的选择。你知道吗

@gen.coroutine用于本机Tornado应用程序;对于在WSGIContainer内运行的外部应用程序,它没有任何有用的方法。你知道吗

Tornado的Windows支持也很有限。你知道吗

相关问题 更多 >