Adds a shutdown(callback)
to nodes http(s) servers. shutdown()
will stop accepting new connections and waits until all pending requests are finished.
This is very similar to the node builtin close() function with the only difference that shutdown()
destroys idle connections (keep alive connections). This is done using socket.setTimeout(), which destroys sockets after some time without data transfer (10 seconds as default).
var enableGracefulShutdown = require('server-graceful-shutdown');
var server = http.createServer(function(req, res) {
// do stuff
});
server.listen(80);
// enhance server with a 'shutdown' function
enableGracefulShutdown(server);
// you can set the socket idle timeout using the second parameter
// e.g. enableGracefulShutdown(server, 5000);
// some time later...
server.shutdown(function() {
// all requests are finished
// we can
// process.exit()
// now
});