do less work when standalone

This commit is contained in:
AJ ONeal 2016-09-08 17:48:14 -06:00
parent 44518f9d61
commit 6f386cb159

View File

@ -26,16 +26,15 @@ function getMethods(inst, keys) {
}); });
} }
module.exports.create = function (opts) { function setup(opts) {
var PromiseA = opts.PromiseA || global.Promise || require('bluebird');
var crypto = require('crypto'); var crypto = require('crypto');
var inst = opts.instance;
var methods = getMethods(opts.instance, opts.methods); var methods = getMethods(opts.instance, opts.methods);
var token = crypto.randomBytes(16).toString('hex'); var token = crypto.randomBytes(16).toString('hex');
var msgPrefix = 'cluster-rpc.' + opts.name; var msgPrefix = 'cluster-rpc.' + opts.name;
var rpcPrefix = msgPrefix + '.rpc'; var rpcPrefix = msgPrefix + '.rpc';
var resultPrefix = msgPrefix + '.result'; var resultPrefix = msgPrefix + '.result';
var initPrefix = msgPrefix + '.init'; var initPrefix = msgPrefix + '.init';
var inst = opts.instance;
opts.master = opts.master || require('./process/master').create(); opts.master = opts.master || require('./process/master').create();
@ -87,9 +86,21 @@ module.exports.create = function (opts) {
}); });
}); });
}
opts._promise = PromiseA.resolve(inst); module.exports.create = function (opts) {
opts._promise.addWorker = opts.master.addWorker; var PromiseA = opts.PromiseA || global.Promise || require('bluebird');
var init = false;
opts._promise.addWorker = function (w) {
if (!init) {
init = true;
setup();
}
return opts.master.addWorker(w);
};
opts._promise = PromiseA.resolve(opts.instance);
return opts._promise; return opts._promise;
}; };