質問はほとんどそれをすべて言います。Supervisor を備えたサーバーで Tornado を実行している場合、コードをデプロイして Tornado サーバーを再起動する必要があると、アクティブなリクエストはどうなりますか? それらはリクエストの途中でドロップされますか? 彼らは終了することが許されていますか?
1 に答える
2
監視対象は、HUPやTERMなどの信号を竜巻プロセスに送信します。最も重要なポイントは、竜巻がそれをどのように処理するかです。
残念ながら、竜巻はHUP、TERM、INTなどの信号を受信すると単純に終了します。
Tornadoにはautoreloadという名前のサブモジュールがあり、アプリケーションがコードファイルの変更を検出してアプリケーションをリロードできるようにしますが、WSGIアプリケーションではなく、1つのプロセスのデバッグモードでのみ機能します。それは開発ツールです。
ただし、run tornado.autoreload._reload関数内で手動で関数を定義し、HUPsigalに登録することはできます。tornado.autoreload.add_reload_hookは、リロード時に呼び出される関数を追加できます。
竜巻はフォークモードではプロセスを適切に管理しないため、さまざまなポートに対して多くの独立したプロセスを実行することをお勧めします。このモードでは、_reloadはデバッグフラグの設定と同じように機能します。
結局のところ、アプリケーションで適切に機能することを確認するために、テストとベンチマークを行ってください。
于 2012-06-02T11:56:49.343 に答える