https://github.com/dresende/node-rack
NodeJS Cluster Abstraction Layer
https://github.com/dresende/node-rack
Last synced: 6 months ago
JSON representation
NodeJS Cluster Abstraction Layer
- Host: GitHub
- URL: https://github.com/dresende/node-rack
- Owner: dresende
- License: mit
- Created: 2011-12-14T21:16:04.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2012-06-21T17:26:11.000Z (over 13 years ago)
- Last Synced: 2025-06-11T09:48:09.783Z (7 months ago)
- Language: JavaScript
- Homepage:
- Size: 134 KB
- Stars: 18
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## NodeJS Cluster Abstraction Layer
This is an abstraction layer based on EventEmitter to provide a
simple way of dealing with cluster support added on v0.6 of NodeJS.
## Install
npm install rack
## Usage
Don't forget to check the examples folder. Every available functionality is there.
var rack = require("rack").create();
rack.on("master-start", function () {
console.log("master starting..");
});
rack.on("worker-start", function () {
console.log("worker starting..");
});
rack.start();
## Global Methods
### .create()
Create a new Rack.
### .cores()
Returns the number of detected CPU on your machine. This is
used by Rack.start() if you do not specify the number of workers
you want - it will use the number of CPU you have.
You can use this to start a multiple of workers based on CPU count.
var cluster = require("rack"),
rack = cluster.create();
rack.start(cluster.cores() * 2);
## Rack Events
### master-start(rack)
This happens once you execute your script and will trigger only
once for the master process.
### worker-start(worker)
This happens for every worker that is started. Later on this can
also happen when a worker dies and needs to start again.
### worker-end(worker, rack)
This happens when a worker dies. You can start a new one by calling
`rack.worker()`.
### worker-error()
This happens when a workers die too often.
### message(message, worker, rack)
This happens when a worker sends a message to the master and
vice-versa.
## Rack Methods
### .start(n)
Start a total of `n` workers.
### .monitor(max, freq)
Start worker monitor and start a new worker whenever one dies. If
`max` workers die during `freq` miliseconds, monitor will not restart
the last one and will trigger `worker-error` event.
### .worker()
This is the internal method to start a new worker. After calling `.start()`,
if you want to start more workers just call this method.
### .broadcast(msg)
Send a message from master to all workers. This will not work on
workers.
### .restart(interval [, cb ])
Kill all workers and start new ones with an `interval` (in ms) between them.
If `cb` is specified, it will be called in the end of the restart process.