node.js サーバーにグレースフル ストップを実装しました。基本的には次のようなものです:
var shutDown = function () {
server.on('close', function () {
console.log('Server ' + process.pid + ' closed.');
process.exit();
});
console.log('Shutting down ' + process.pid + '...');
server.close();
}
ただし、このようにサーバーを閉じるとError: socket hang up
、連続したリクエストでエラーが発生します。
server.close()
サーバーが新しいリクエストのリッスンと受け入れを停止することになると思いましたが、保留中/開いているすべてのリクエストの処理を続けます。ただし、それはError: connect ECONNREFUSED
.
私は何を間違っていますか?
追加情報: サーバーは、マスターと 3 つのフォークされた子/ワーカーで構成されます。ただし、マスターはポートをリッスンまたはバインドしていません。子のみがリッスンしており、上記のようにシャットダウンされています。