SPAM is a module for simple node.js process management, and wraps the cluster module.
$ npm install spam
To create some processes, using the spawn method. This takes the following parameters:
- Configuration object
- number (number of processes to spawn, e.g. 4)
- timeout (time in milliseconds to allow each spawn to occur, before timing out)
- strategy (either 'series', or 'parallel', to spawn one at a time, or all together)
- readyOn (what signal indicates the script is ready, 'ready' or 'listening' - default)
- Callback when initialization of the module is complete
var spam = ;// to create 4 processes using the myscript.js script - ready on listen(),// created in parallel, with a timeout of 60 secondsspam;spam;// to create 2 processes callback is called when 'ready' message sent, not on 'listen'// created in series, with no timeoutspam;
If you want to log what's going on in SPAM
If you want to gracefully restart all the processes, by starting a new worker before killing the old worker, do this with the restart method.
// graceful restart of all the processesspam;
To stop all the processes:
// stop allspam;
NOTE: The scripts that are run, either need to run server.listen() or emit a specific 'ready' message. If they do not do this, then SPAM will assume they've not started and time them out. You can emit a 'ready' message using a convenience function or explicitly using process.send();
// using the signal modulevar signal = signal;signal;// using the process.send methodprocess;
To run the npm unit tests, install development dependencies and run tests with 'npm test' or 'make'.
$ cd node_modules/spam$ npm install$ npm test
Coverage can be measured using the node-jscoverage project. After installing jscoverage from github, just:
$ make test-cov