Socket
Socket
Sign inDemoInstall

master-cluster

Package Overview
Dependencies
3
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.1.2 to 0.1.3

4

example/app.js
(function () {
'use strict';
var MC = require('../master-cluster');
function index (req, res) {
// do something with the request and response
console.log('Worker %d received request for "%s"', MC.cluster.worker.id, req.url);
res.end('OK');
}

@@ -7,0 +11,0 @@

3

example/boot.js

@@ -5,4 +5,5 @@ (function () {

var MC = require('../master-cluster')
, worker = require.resolve('./server.js');
, worker = require.resolve('./server');
MC.start({exec: worker});
})();

@@ -5,3 +5,3 @@ (function () {

var MC = require('../master-cluster')
, app = require('./app.js')
, app = require('./app')
, http = require('http');

@@ -17,8 +17,9 @@

server.listen(3000, function () {
console.log("Listening on %d", 3000);
console.log('Worker %d listening on %d', MC.cluster.worker.id, 3000);
});
function shutdown () {
function shutdown (err) {
// optional - cleanly close db connections and other resources
if (err) console.error(err);
}
})();

@@ -1,5 +0,8 @@

var cluster = require("cluster")
, reloader = require("./reloader")
, setup = {};
'use strict';
var cluster = require('cluster');
var debug = require('debug')('master-cluster');
var reloader = require('./reloader');
var setup = {};
function start (options) {

@@ -13,11 +16,13 @@ if (! cluster.isMaster) throw new Error('Start can only be run on master!');

}
if (! options.size) options.size = require("os").cpus().length;
if (! options.size) options.size = require('os').cpus().length;
cluster.setupMaster(options);
var reload = options.reload || options.reload === false ? options.reload : /^dev/.test(process.env.NODE_ENV), counter = 0;
var counter = 0;
var reload = options.reload || options.reload === false ? options.reload : /^dev/.test(process.env.NODE_ENV);
if (reload ) {
reloader.reload(options);
cluster.reset = function () {
eachCluster(options.size, cluster.fork.bind(cluster));
eachCluster(options.size, fork);
counter = 0;

@@ -27,11 +32,12 @@ }

eachCluster(options.size, cluster.fork.bind(cluster));
eachCluster(options.size, fork);
cluster.on('disconnect', function (worker) {
debug('Worker %d with pid %s disconnected', worker.id, worker.process.pid);
if (! reload) {
cluster.fork();
fork();
return;
}
if (counter > options.size * 3) {
console.error('Application is crashing. Waiting for file change.');
debug('Application is crashing. Waiting for file change.');
return;

@@ -44,3 +50,3 @@ }

counter++;
cluster.fork();
fork();
});

@@ -55,2 +61,6 @@ }

function fork () {
cluster.fork().on('error', onWorkerError);
}
function run () {

@@ -60,3 +70,3 @@ if (typeof setup.run === 'undefined') throw new Error('There is nothing to run!');

var d = require("domain").create(), args = arguments;
var d = require('domain').create(), args = arguments;
d.on('error', onWorkerError);

@@ -76,3 +86,4 @@ for (var i = 0; i < arguments.length; i++) d.add(arguments[i]);

function setFnHandlers (runFn, errorFn) {
setup.run = runFn, setup.error = errorFn || function () {};
setup.run = runFn;
setup.error = errorFn || function () {};
return this;

@@ -82,3 +93,3 @@ }

function onWorkerError (err) {
console.error('master-cluster', 'Worker uncaught exception', err.stack);
debug('Worker uncaught exception\n%s', err.stack);

@@ -91,3 +102,4 @@ try {

// But don't keep the process open just for that!
if (typeof killtimer.unref === 'function') killtimer.unref();
if (typeof killtimer.unref === 'function')
killtimer.unref();

@@ -97,10 +109,12 @@ // Let the master know we're dead. This will trigger a

// a new worker.
if (cluster.worker && !cluster.worker.suicide) cluster.worker.disconnect();
if (cluster.worker && !(cluster.worker.exitedAfterDisconnect || cluster.worker.suicide))
cluster.worker.disconnect();
// stop everything
if (typeof setup.error === 'function') setup.error(err);
if (typeof setup.error === 'function')
setup.error(err);
} catch (er2) {
// oh well, not much we can do at this point.
console.error('master-cluster', 'Error closing worker down!', er2.stack);
debug('Error closing worker down!\n%s', er2.stack);
}

@@ -107,0 +121,0 @@ }

@@ -5,3 +5,3 @@ {

"description": "Facilitate using cluster and domain modules, live reload application in development mode on code change.",
"version": "0.1.2",
"version": "0.1.3",
"dependencies": {

@@ -8,0 +8,0 @@ "debug": "^2.0.0",

@@ -1,5 +0,7 @@

var fs = require("fs")
, cluster = require("cluster")
, debug = require("debug")("master-cluster")
, moment = require("moment")
'use strict';
var fs = require('fs')
, cluster = require('cluster')
, debug = require('debug')('master-cluster')
, moment = require('moment')
, cooldown = 100

@@ -16,3 +18,3 @@ , last = moment()

debug('Watcher started for extensions', rg);
debug('Watcher started for extensions %s', rg.toString());
walk(path, rg);

@@ -37,3 +39,3 @@ }

function watch (path, rg) {
debug('Watching files in', path);
debug('Watching files in %s', path);
fs.watch(path, function (event, filename) {

@@ -50,6 +52,10 @@ if (skipFile(filename, rg)) return;

try {
debug('Killing worker', worker.id);
worker.kill();
debug('Killing worker %d', worker.id);
worker.disconnect();
var timeout = setTimeout(worker.kill.bind(worker), 3000);
worker.on('disconnect', clearTimeout.bind(null, timeout));
}
catch (e) {}
catch (e) {
debug('Error killing worker %d: %s', worker.id, e.message);
}
})

@@ -56,0 +62,0 @@ })

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