Socket
Socket
Sign inDemoInstall

graceful-cluster

Package Overview
Dependencies
0
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.1 to 0.0.2

.npmignore

18

lib/graceful-cluster.js

@@ -18,2 +18,3 @@ var cluster = require('cluster');

- options.restartOnTimeout - ms, restart worker by timer.
- options.workersCount - workers count, if not specified `os.cpus().length` will be used.

@@ -40,2 +41,3 @@ Graceful restart performed by USR2 signal:

var disableGraceful = options.disableGraceful;
var workersCount = options.workersCount || numCPUs;

@@ -45,3 +47,3 @@ if (cluster.isMaster) {

var sigkill = false;
var workersCount = 0;
var currentWorkersCount = 0;
var listeningWorkersCount = 0;

@@ -53,3 +55,3 @@ var restartQueue = [];

// Kill one worker only if maximum count are working.
if (restartQueue.length > 0 && listeningWorkersCount === numCPUs) {
if (restartQueue.length > 0 && listeningWorkersCount === workersCount) {
var pid = restartQueue.shift();

@@ -80,3 +82,3 @@ try {

// Fork workers.
for (var i = 0; i < numCPUs; i++) {
for (var i = 0; i < workersCount; i++) {
fork();

@@ -87,7 +89,7 @@ }

function checkIfNoWorkersAndExit() {
if (!workersCount) {
if (!currentWorkersCount) {
log('Cluster graceful shutdown: done.');
process.exit(0);
} else {
log('Cluster graceful shutdown: wait ' + workersCount + ' worker' + (workersCount > 1 ? 's' : '') + '.');
log('Cluster graceful shutdown: wait ' + currentWorkersCount + ' worker' + (currentWorkersCount > 1 ? 's' : '') + '.');
}

@@ -137,3 +139,3 @@ }

cluster.on('fork', function(worker) {
workersCount++;
currentWorkersCount++;
worker.on('listening', function() {

@@ -148,3 +150,3 @@ listeningWorkersCount++;

cluster.on('exit', function(worker, code, signal) {
workersCount--;
currentWorkersCount--;
listeningWorkersCount--;

@@ -203,2 +205,2 @@ if (sigkill) {

});
};
};
{
"name": "graceful-cluster",
"version": "0.0.1",
"version": "0.0.2",
"description": "Gracefully restart node.js http cluster with zero downtime. Shutdown server without active inbound connections reset.",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -21,7 +21,7 @@ # Graceful cluster

var GracefulServer = require('graceful-cluster').GracefulServer;
new GracefulServer({
var gracefulServer = new GracefulServer({
server: listener,
shutdownTimeout: 10 * 1000, // 10 sec.
});
GracefulServer options description:

@@ -32,4 +32,8 @@

- `shutdownTimeout` - ms, force worker shutdown on `SIGTERM` timeout.
Also you can initiate graceful shutdown when needed:
gracefulServer.shutdown();
### 2. Use simplified cluster initialization.
### 2. Use simplified cluster initialization

@@ -68,2 +72,3 @@ This cluster wrapper will send `SIGTERM` signal to workers and wait till they finished all requests.

- `restartOnTimeout` - ms, restart worker by timer.
- `workersCount` - workers count, if not specified `os.cpus().length` will be used.

@@ -70,0 +75,0 @@ ### Gracefully restart cluster

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc