2017-04-14 1 views
0

nssm을 사용하여 서비스 모드 (로그인하지 않고)로 django 웹 사이트를 처음 배포하려고합니다.여러 비동기 요청을 허용하기 위해 django 백엔드에서 실행중인 Tornado 웹 서버에 gen.Task 모듈을 추가하는 방법

그렇게하려면, 내가 내 프로젝트에 새로운 tornado.py 파일을 추가 그래서 시도 일반적인

python manage.py runserver 0.0.0.0 

를 사용할 수없는 것 같습니다과 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이 파일을 가리키면 배포가 가능하지만 유감스럽게도 저는 장거리 장고에 다른 API를 호출하는 긴 요청이 있으며 이러한 긴 서비스 중 하나를 호출하면 다른 요청을 할 수 없습니다 즉, 첫 번째 요청이 완료 될 때까지 기다려야합니다. 나는이 웹 사이트에 동일한 문제에 관련된 다른 질문을 본 것을에서

, 나는 어떻게든지 아래 토네이도 장식을 추가해야합니다

@gen 

내가 성공하지 옵션 몇 가지를 시도 할 수 있습니다 ' django를 사용하는 예제를 찾으십시오.

django는 mvc 프레임 워크에만 사용되지만 orm이나 auth는 사용하지 않습니다.

내 회사에서 모범 사례이기 때문에 django와 microsoft webserver/nssm이 많이 있기 때문에 django를 유지해야하지만 토네이도는 나를 도울 수 있습니까? 올바른 방향을 찾고 있습니까?

이 문제에 대해 저를 도울 수있는 모든 사람들에게 미리 감사드립니다.

답변

0

에 유의 WSGIContainer docs에 경고 : 토네이도의 WSGIContainer 더 병렬이없고 거의 확실 WSGI 기반 응용 프로그램 gunicorn 또는 uwsgi 같은 다른 WSGI 서버보다 더 나쁜 선택이 될 것입니다.

@gen.coroutine은 토네이도 응용 프로그램 용입니다. WSGIContainer 내부에서 실행중인 외국 응용 프로그램에 대해서는 유용한 방법으로 사용할 수 없습니다.

토네이도의 Windows 지원도 제한됩니다.

관련 문제