cluster-rpc.js/test.js

62 satır
898 B
JavaScript

'use strict';
var cluster = require('cluster');
var crpc;
function runMaster() {
var db = {
get: function (key, cb) {
cb(null, db[key]);
}
, put: function (key, val, cb) {
db[key] = val;
if (cb) { cb(null); }
}
};
crpc = require('./master').create({
instance: db
, methods: [ 'get', 'put' ]
, name: 'foo-level'
});
crpc.then(function () {
db.put('foo', 'bar');
});
cluster.fork();
}
function runWorker() {
crpc = require('./worker').create({
name: 'foo-level'
});
}
if (cluster.isMaster) {
runMaster();
}
else {
runWorker();
}
crpc.then(function (db) {
setTimeout(function () {
db.get('foo', function (err, result) {
console.log(cluster.isMaster && '0' || cluster.worker.id.toString(), "db.get('foo')", result);
if (!cluster.isMaster) {
process.exit(0);
}
});
}, 250);
});