graceful
TypeScript icon, indicating that this package has built-in type declarations

2.0.0 • Public • Published

graceful

NPM version Test coverage npm download Node.js Version

Graceful exit when uncaughtException emit, base on process.on('uncaughtException').

Why we should use this module

It's the best way to handle uncaughtException on current situations.

Install

npm install graceful

Usage

Please see express_with_cluster example.

This below code just for dev demo, don't use it on production env:

const express = require('express');
const { graceful } = require('graceful');

const app = express()
.use()
.use(function(req, res){
  if (Math.random() > 0.5) {
    foo.bar();
  }
  setTimeout(function() {
    if (Math.random() > 0.5) {
      throw new Error('Asynchronous error from timeout');
    } else {
      res.end('Hello from Connect!');
    }
  }, 100);
  setTimeout(function() {
    if (Math.random() > 0.5) {
      throw new Error('Mock second error');
    }
  }, 200);
})
.use(function(err, req, res, next) {
  res.end(err.message);
});

const server = app.listen(1984);

graceful({
  servers: [server],
  killTimeout: '30s',
});

If you have multi servers on one process, you just add them to server:

graceful({
  servers: [server1, server2, restapi],
  killTimeout: '15s',
});

ESM and TypeScript

import { graceful } from 'graceful';

Contributors

Contributors

Made with contributors-img.

License

MIT

Package Sidebar

Install

npm i graceful

Weekly Downloads

20,632

Version

2.0.0

License

MIT

Unpacked Size

34 kB

Total Files

11

Last publish

Collaborators

  • fengmk2