allow client on single core
This commit is contained in:
parent
cf5e734618
commit
1a84c1db10
20
client.js
20
client.js
|
@ -19,7 +19,7 @@ function startServer(opts, verbs, myServer) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// connection is scoped per-process, nothing more
|
// connection is scoped per-process, nothing more
|
||||||
function getConnection(opts, verbs, mySocket) {
|
function getConnection(opts, verbs, mySocket, retry) {
|
||||||
function incr(ws) {
|
function incr(ws) {
|
||||||
if (!ws.__count) {
|
if (!ws.__count) {
|
||||||
ws.__count = 0;
|
ws.__count = 0;
|
||||||
|
@ -27,12 +27,12 @@ function getConnection(opts, verbs, mySocket) {
|
||||||
ws.__count += 1;
|
ws.__count += 1;
|
||||||
return ws;
|
return ws;
|
||||||
}
|
}
|
||||||
if (mySocket || processWebSocket) {
|
if (!retry && (mySocket || processWebSocket)) {
|
||||||
promiseWebSocket = verbs.Promise.resolve(mySocket || processWebSocket);
|
promiseWebSocket = verbs.Promise.resolve(mySocket || processWebSocket);
|
||||||
return promiseWebSocket.then(incr);
|
return promiseWebSocket.then(incr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (promiseWebSocket) {
|
if (!retry && promiseWebSocket) {
|
||||||
return promiseWebSocket.then(incr);
|
return promiseWebSocket.then(incr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,11 +45,11 @@ function getConnection(opts, verbs, mySocket) {
|
||||||
var address = require('url').parse('ws+unix:' + opts.sock);
|
var address = require('url').parse('ws+unix:' + opts.sock);
|
||||||
var ws;
|
var ws;
|
||||||
address.pathname = opts.sock;
|
address.pathname = opts.sock;
|
||||||
address.path = '/' + require('cluster').worker.id + '/' + opts.ipcKey;
|
address.path = '/' + (require('cluster').worker||{}).id + '/' + opts.ipcKey;
|
||||||
address.query = {
|
address.query = {
|
||||||
ipcKey: opts.ipcKey
|
ipcKey: opts.ipcKey
|
||||||
, ipc_key: opts.ipcKey
|
, ipc_key: opts.ipcKey
|
||||||
, worker_id: require('cluster').worker.id
|
, worker_id: (require('cluster').worker||{}).id
|
||||||
};
|
};
|
||||||
address.path += '?' + require('querystring').stringify(address.query);
|
address.path += '?' + require('querystring').stringify(address.query);
|
||||||
ws = new WebSocket(address);
|
ws = new WebSocket(address);
|
||||||
|
@ -61,7 +61,7 @@ function getConnection(opts, verbs, mySocket) {
|
||||||
function retry() {
|
function retry() {
|
||||||
// TODO eventually throw up
|
// TODO eventually throw up
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
getConnection(opts, verbs, mySocket).then(resolve, retry);
|
getConnection(opts, verbs, mySocket, true).then(resolve, retry);
|
||||||
}, 100 + (Math.random() * 250));
|
}, 100 + (Math.random() * 250));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,7 +157,7 @@ module.exports.createClientFactory = function (conf, verbs, _socket) {
|
||||||
verbs.Promise = require('bluebird');
|
verbs.Promise = require('bluebird');
|
||||||
}
|
}
|
||||||
|
|
||||||
copy.connect = true;
|
copy.connect = (require('cluster').worker && true);
|
||||||
copy.sock = conf.sock;
|
copy.sock = conf.sock;
|
||||||
copy.tenant = conf.tenant;
|
copy.tenant = conf.tenant;
|
||||||
copy.ipcKey = conf.ipcKey;
|
copy.ipcKey = conf.ipcKey;
|
||||||
|
@ -231,7 +231,7 @@ module.exports.create = function (opts, verbs, mySocket) {
|
||||||
throw new Error("Please specify opts.sock as the path to the master socket. '/tmp/sqlite3-cluster' would do nicely.");
|
throw new Error("Please specify opts.sock as the path to the master socket. '/tmp/sqlite3-cluster' would do nicely.");
|
||||||
}
|
}
|
||||||
|
|
||||||
promise = getConnection(opts, verbs, mySocket).then(function (socket) {
|
promise = getConnection(opts, verbs, mySocket, true).then(function (socket) {
|
||||||
mySocket = socket;
|
mySocket = socket;
|
||||||
return mySocket;
|
return mySocket;
|
||||||
});
|
});
|
||||||
|
@ -250,7 +250,7 @@ module.exports.create = function (opts, verbs, mySocket) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function init(iopts) {
|
function init(iopts) {
|
||||||
console.log('CLIENT INIT');
|
//console.log('CLIENT INIT');
|
||||||
if (db._initPromise) {
|
if (db._initPromise) {
|
||||||
return db._initPromise;
|
return db._initPromise;
|
||||||
}
|
}
|
||||||
|
@ -313,7 +313,7 @@ module.exports.create = function (opts, verbs, mySocket) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('CLIENT RESOLVING INIT');
|
//console.log('CLIENT RESOLVING INIT');
|
||||||
resolve(cmd.args[0]);
|
resolve(cmd.args[0]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue