2017-04-14 1 views
0

nssmを使用してサービスモード(ログインしていない状態)でdjango Webサイトを初めて展開しようとしています。複数の非同期リクエストを許可するdjangoバックエンド用のTornado Webサーバーにgen.Taskモジュールを追加するには

:そうするには

、私がだから私は自分のプロジェクトに新しいtornado.pyファイルを追加しようとしたとNSSMがそれに指すことになり、通常

python manage.py runserver 0.0.0.0 

を使用することはできませんようです

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を呼び出すような長い要求があります。これらの長いサービスの1つを呼び出すと、つまり、最初のリクエストが完了するまで待つ必要があります。私はこのウェブサイト上の同じ問題に関連するその他の質問には何を見ているから

、私は何らかの方法下記の竜巻デコレータを追加する必要があります。

@gen 

私は「成功せずにオプションのカップルを試してみましたが、できていますdjangoを使っている例が見つかりました。

私はmvcフレームワークでのみdjangoを使用しますが、ormまたはauthは使用しません。

私の会社ではベストプラクティスであるため、これに多くの作業とmicrosoft webserver/nssmがあるので、私はdjangoを維持する必要がありますが、これで私を助けることができる竜巻ですか?私は正しい方向を見ていますか?

この問題について私に手伝ってもらうために時間を掛けてくれたすべての人に、事前に感謝します。

答えて

0

留意してくださいWSGIContainer docsに警告:トルネードのWSGIContainerは何の並列性を持っていないと、ほぼ確実にWSGIベースのアプリケーションのためのgunicornまたはuwsgiのような他のWSGIサーバよりも悪い選択肢です。

@gen.coroutineは、ネイティブのトルネードアプリケーション用です。 WSGIContainerの中で実行されている外国のアプリケーションのための有用な方法では利用できません。

竜巻のWindowsのサポートにも制限があります。

関連する問題