Improve service shutdown process
This commit is contained in:
1 parent
3fc13317a2
commit
f0b9c32ab4
2 files changed
+28
-8
No files matched your search
@@ -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
@@ -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()
|
||||||
|
|||||||
Reference in new issue
Block a user