cluster-rpc.js/test.js

62 rivejä
898 B
JavaScript

2016-09-08 22:23:40 +00:00
'use strict';
var cluster = require('cluster');
var crpc;
2018-04-21 01:13:48 +00:00
function runMaster() {
2016-09-08 22:23:40 +00:00
2018-04-21 01:13:48 +00:00
var db = {
get: function (key, cb) {
cb(null, db[key]);
}
, put: function (key, val, cb) {
db[key] = val;
if (cb) { cb(null); }
}
};
2016-09-08 22:23:40 +00:00
crpc = require('./master').create({
instance: db
, methods: [ 'get', 'put' ]
, name: 'foo-level'
});
crpc.then(function () {
db.put('foo', 'bar');
});
2016-09-09 00:25:08 +00:00
cluster.fork();
2016-09-08 22:23:40 +00:00
}
2018-04-21 01:13:48 +00:00
function runWorker() {
2016-09-08 22:23:40 +00:00
crpc = require('./worker').create({
name: 'foo-level'
});
}
2018-04-21 01:13:48 +00:00
if (cluster.isMaster) {
runMaster();
}
else {
runWorker();
}
2016-09-08 22:23:40 +00:00
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);
});