Skip to content

roylines/hapi-graceful-pm2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hapi-graceful-pm2

Circle CI Coverage Status npm version

This is a hapi plugin to handle true zero downtime reloads when issuing a pm2 reload command.

When using this plugin and calling 'pm2 reload', the 'SIGINT' message will be intercepted and will wait for hapi to drain all connections before exiting the worker. This will ensure any in progress requests are completed before exiting. Whilst waiting, no new requests will be forwarded to the worker.

Without this plugin the issuing of a reload will terminate any in progress requests without waiting. You can pass a timeout that configures the maximum time hapi should wait to drain all connections. Note: the PM2_GRACEFUL_TIMEOUT environment variable should be set to a value higher than the plugin timeout to ensure pm2 doesn't timeout before hapi.

The pm2 shutdown process is described here.

Usage

Register the plugin in the usual way, for instance:

server.register({  
    plugin: require('hapi-graceful-pm2'),
    options: {
        timeout: 4000
    }
}).then((err) => {
});

About

hapi plugin to handle graceful pm2 reloads

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published