bernard
is a Node.js graceful exit manager
Services should exit when asked to or when a no busines logic related error happens. When this happens, chances are the service is still processing some requests. An immediate exit can disrupt this requests and cause (specially in non-transacting environments like microservices) data inconsistencies.
Rescue-parachute helps to stop the execution in an ordered manner. For example, stopping the web server from receiving new requests, then the database connection and finally closing the process.
npm install --save bernard
Here you have a illustrative example on how to use it with Express:
const express = require('express');
const app = express();
const server = app.listen(9000);
const Bernard = require('bernard');
const bernard = new Bernard();
bernard.prepare();
bernard.addTask({
title: 'Express Server',
handler: function() {
return server.close();
}
});
More examples available in docs/examples
directory.
If you think something could be done better or simply sucks, bring up a issue on the tracker. Don't be shy. I really love feedback and technical discussions.
Pull requests are welcome (and will make me cry in joy). Also, did I already say that I love technical discussions? Feel free to open a issue on the tracker if you have any doubt.
Use the GitHub issue tracker to report any bugs or file feature requests. In case you found a bug and have no GitHub account, feel free to email me: fcanela.dev at gmail dot com.
Copyright (c) 2017 Francisco Canela. Licensed under the MIT license.
Probably not. At least, not yet. I usually follow semver for modules versioning and while it is at 0.x.x you can expect breaking changes.
Yes, I know. Unfortunately I have limited time resources. Feel free to open a issue or sumbit a pull request if you can help me improving this.
I am unable to draw a circle. Gladly, my girlfriend, Maria Bonete, has more artistical skills. She did it.