bobbin
easily spool up thread-like worker processes in node with bobbin

var bobbin = require('bobbin');
bobbin.create(4, function(err, pool) {
var left = 'foo', right = 'bar';
pool.run(
left, right,
function remoteWorkFunction(left, right, callback) {
callback(left + right);
},
function localCallback(result) {
assert(result === 'foobar');
}
);
});
for clarity, the signature of pool.run
is:
pool.run(varsToSend..., workFunction, localCallback)
stuff to keep in mind:
- calls to
pool.run()
are dispatched to workers in a round-robin fashion, though idle workers are prioritized. - you can't send closures to workers, so explicitly send data in the first arguments to
pool.run()
. those arguments will be passed verbatim into your work function. - your local callback gets called with whatever your work function calls back with.
- to
create()
a pool, you have to be the cluster
master, i.e. cluster.isMaster
Apache License 2.0, see LICENSE for info.