Gracefully exit server (Koa), database (Mongo/Mongoose), Redis clients, Bree job schedulers, and Bull job schedulers
npm:
npm install @ladjs/graceful
yarn:
yarn add @ladjs/graceful
Using this package will bind process event listeners when graceful.listen()
is called:
process.on('warning')
- will output viaconfig.logger.warn
process.on('unhandledRejection')
- will output viaconfig.logger.error
process.once('uncaughtException')
- will output viaconfig.logger.error
andprocess.exit(1)
(does not exit gracefully)process.on('message')
- support Windows (e.g. signals not available) and listen for message ofshutdown
and then exit gracefullyprocess.once('SIGTERM')
- will exit gracefullyprocess.once('SIGHUP')
- will exit gracefullyprocess.once('SIGINT')
- will exit gracefullyprocess.once('SIGUSR2')
- will exit gracefully (nodemon support)
This package also prevents multiple process/SIG events from triggering multiple graceful exits. Only one graceful exit can occur at a time.
See one of these following files from Lad for the most up to date usage example:
- API - https://github.com/ladjs/lad/blob/master/template/api.js
- Web - https://github.com/ladjs/lad/blob/master/template/web.js
- Bull - https://github.com/ladjs/lad/blob/master/template/bull.js
- Proxy - https://github.com/ladjs/lad/blob/master/template/proxy.js
You can also read more about Bree at https://github.com/breejs/bree.
Name | Website |
---|---|
Nick Baugh | http://niftylettuce.com/ |