1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-05 10:39:25 +02:00

Make graceful shutdown more graceful by actually waiting for sockets (and others) to close. Ongoing effort.

This commit is contained in:
Simo Kinnunen 2014-04-12 16:16:03 +09:00
parent 123bf2e647
commit bd2b43901d
4 changed files with 23 additions and 12 deletions

View file

@ -8,6 +8,7 @@ var logger = require('../../util/logger')
var wire = require('../../wire') var wire = require('../../wire')
var wirerouter = require('../../wire/router') var wirerouter = require('../../wire/router')
var wireutil = require('../../wire/util') var wireutil = require('../../wire/util')
var lifecycle = require('../../util/lifecycle')
module.exports = function(options) { module.exports = function(options) {
var log = logger.createLogger('notify-hipchat') var log = logger.createLogger('notify-hipchat')
@ -61,18 +62,10 @@ module.exports = function(options) {
}) })
} }
function gracefullyExit() {
process.exit(0)
}
process.on('SIGINT', function() {
gracefullyExit()
})
process.on('SIGTERM', function() {
gracefullyExit()
})
log.info('Listening for %s (or higher) level log messages', log.info('Listening for %s (or higher) level log messages',
logger.LevelLabel[options.priority]) logger.LevelLabel[options.priority])
lifecycle.observe(function() {
sub.close()
})
} }

View file

@ -5,6 +5,7 @@ var wire = require('../wire')
var wirerouter = require('../wire/router') var wirerouter = require('../wire/router')
var wireutil = require('../wire/util') var wireutil = require('../wire/util')
var dbapi = require('../db/api') var dbapi = require('../db/api')
var lifecycle = require('../util/lifecycle')
module.exports = function(options) { module.exports = function(options) {
var log = logger.createLogger('processor') var log = logger.createLogger('processor')
@ -91,4 +92,9 @@ module.exports = function(options) {
appDealer.send([channel, data]) appDealer.send([channel, data])
}) })
.handler()) .handler())
lifecycle.observe(function() {
appDealer.close()
devDealer.close()
})
} }

View file

@ -46,4 +46,9 @@ module.exports = function(options) {
timer = setInterval(reap, options.reapInterval) timer = setInterval(reap, options.reapInterval)
log.info('Reaping devices with no heartbeat') log.info('Reaping devices with no heartbeat')
lifecycle.observe(function() {
clearTimeout(timer)
push.close()
})
} }

View file

@ -1,6 +1,7 @@
var zmq = require('zmq') var zmq = require('zmq')
var logger = require('../util/logger') var logger = require('../util/logger')
var lifecycle = require('../util/lifecycle')
module.exports = function(options) { module.exports = function(options) {
var log = logger.createLogger('triproxy') var log = logger.createLogger('triproxy')
@ -31,4 +32,10 @@ module.exports = function(options) {
pull.bindSync(options.endpoints.pull) pull.bindSync(options.endpoints.pull)
pull.on('message', proxy(dealer)) pull.on('message', proxy(dealer))
log.info('PULL socket bound on', options.endpoints.pull) log.info('PULL socket bound on', options.endpoints.pull)
lifecycle.observe(function() {
pub.close()
dealer.close()
pull.close()
})
} }