53 lines
801 B
JavaScript
53 lines
801 B
JavaScript
'use strict';
|
|
|
|
var cluster = require('cluster');
|
|
var crpc;
|
|
var db = {
|
|
get: function (key, cb) {
|
|
cb(null, db[key]);
|
|
}
|
|
, put: function (key, val, cb) {
|
|
db[key] = val;
|
|
cb(null);
|
|
}
|
|
};
|
|
|
|
|
|
if (cluster.isMaster) {
|
|
|
|
|
|
crpc = require('./master').create({
|
|
instance: db
|
|
, methods: [ 'get', 'put' ]
|
|
, name: 'foo-level'
|
|
});
|
|
crpc.addWorker(cluster.fork());
|
|
crpc.then(function () {
|
|
db.put('foo', 'bar');
|
|
});
|
|
|
|
|
|
}
|
|
else {
|
|
|
|
|
|
crpc = require('./worker').create({
|
|
name: 'foo-level'
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
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);
|
|
});
|