Improve service shutdown process

This commit is contained in:
Zaid Abdulla committed 2017-09-16 22:38:21 -07:00
1 parent 3fc13317a2
commit f0b9c32ab4
2 files changed
+28 -8

No files matched your search

+3
View File
@@ -69,3 +69,6 @@ process.on("message", function(message) {
process.send([message[0], errorToFault(err), res]); process.send([message[0], errorToFault(err), res]);
}); });
}); });
// Ignore SIGINT
process.on('SIGINT', function() {});
+25 -8
View File
@@ -39,6 +39,30 @@ onConnection = require("./#{service}").onConnection
server = null server = null
closeServer = (timeout, callback) ->
return callback() if not server
setTimeout(() ->
return if not callback
# Ignore HTTP requests from connection that may still be open
server.removeListener('request', listener)
server.setTimeout(1)
cb = callback
callback = null
setTimeout(cb, 1000)
, timeout).unref()
server.close(() ->
return if not callback
cb = callback
callback = null
cb()
)
exit = () -> exit = () ->
setTimeout(() -> setTimeout(() ->
extensions.killAll(() -> extensions.killAll(() ->
@@ -48,14 +72,7 @@ exit = () ->
cluster.worker?.disconnect() cluster.worker?.disconnect()
if not server closeServer(20000, () ->
db.disconnect()
cache.disconnect()
extensions.killAll()
logger.close()
return
server.close(() ->
db.disconnect() db.disconnect()
cache.disconnect() cache.disconnect()
extensions.killAll() extensions.killAll()