cluster-manager

Manage cluster applications with email alerting on crash of worker

npm install cluster-manager
18 downloads in the last day
89 downloads in the last week
482 downloads in the last month

cluster-manager

Purpose

To manage apps that want to use nodejs cluster module. This module will restart workers on failure and allows rolling restarts. It can send email notifications on worker failure.

Install

npm install -g cluster-manager

Usage

var clusterManager = require('cluster-manager');

clusterManager({
    exec:"/PATH/TO/APPLICATION",
    workers: 5,
    notify:{
        from:"from@address.com",
        to:"recipient@address.com",
        subjectPrefix:"SUBJECT PREFIX"
    }
});

Options

Below are the keys that can be set in the JSON object. They are all optional except for exec.

exec
node application that will be started by the cluster
workers
number of workers that will be spawned. Default:2
pidfile
File to store the ID for the main process. Used to send signals to the cluster manager
notify
Object with a from, to and subjectPrefix property. If set, the recipient will receive email notifications on events that affect the workers. To send notifications, it requires /usr/lib/sendmail.
verbose
Handles if the cluster-manager will be verbose in its messages. Default:false
silent
Determines if the worker stdout streams are silent. Default:false
env
Object with the environment variables passed on to the workers
waitBeforeShutdown
How long to wait after reloading workers to confirm reload was successful. After this time, the old workers will be shut down.
waitBeforeForceQuit
How long to wait before the cluster manager will force a worker to shutdown after the initial shutdown request

Signals

While the cluster manager is running, you can send signals.

*To reload workers - start new ones and shut down the old ones.

kill -HUP MASTERPID

*To output to stdout number of workers and their PIDs

kill -USR1 MASTERPID

*To increase running workers to the maximum number set at the start

kill -USR2 MASTERPID

*To attempt graceful shutdown

kill -TERM MASTERPID

NPM Maintainers

The npm module for this library is maintained by:

License

cluster-manager is licensed under the MIT license.

npm loves you