私はnodejsサーバを使って、httpコールをサーバに送ります。何か悪いことが起こった場合、サーバーを正常にシャットダウンするための推奨される方法はありますか?何とかサーバーを稼働させたままにする必要がありますか?Nodejs/express、正常にシャットダウン
I.E.私はこれが接続されたクライアントを殺し、応答を返すことはないと思います。
はI必要があります:私は、サーバーが死ぬ(して再起動)することを可能にする前に、すべてのHTTP接続のための
- が完了するのを待ちます。
- サーバーを停止しないでください。
これは適切ですか?
process.on('exit', function() {
console.log('About to exit, waiting for remaining connections to complete');
app.close();
});
この場合、サーバを未定義の状態にしてもエラーが発生し、サーバは残りの接続を完了し続けます。
エラーを処理するための良い方法はありますか、またはサーバーを終了して再起動する必要がありますか?
これは素晴らしい説明です。一つのことはまだ私はまだ不明です。 '予期しない例外がスローされると、アプリケーションは未定義の状態にあることを覚えておくことが重要です。問題の要求が決して完了せず、アプリが決して再起動しない可能性があります。それは私がアプリを呼び出すべきでないかのようにそれをサウンドにします。閉じる();プロセス '出口'で。本当ですか? – lostintranslation
'process'' exit'ハンドラで' app.close() 'を呼び出すのは無意味です:[docs say](http://nodejs.org/api/process.html#process_event_exit)*"メインイベントループは'exit'コールバックが終了した後でもはや実行されません。 "*つまり、exitイベントは、あなたの関数が復帰した後に**処理が終了する**ことを伝えています。次のティックがないので、ネットワークリスナーを閉じることは無意味です。着信接続を受け入れるコードは決して実行する機会を与えません。 – josh3736
素晴らしい、ありがとう! – lostintranslation