Commit e04bbd4f authored by Eriksson Monteiro's avatar Eriksson Monteiro

update millix node: fix connection pool

parent 17ed0b1c
......@@ -67,6 +67,33 @@ export class Pool {
}
}
_execOnAllWorkers(type, sql, ...data) {
const {
callback,
parameters
} = this._getParameterAndCallback(...data);
if (this.initialized === false || this.closed === true) {
return callback({
error : 'database_closed',
message: 'database closed'
});
}
if (type !== 'run' && type !== 'exec') {
return callback({error: 'invalid_execution_type'});
}
async.eachSeries(this.workerList, (worker, eachCallback) => {
this._sendJobToWorker(worker, type, {
sql,
parameters
})
.then((result) => eachCallback())
.catch(err => eachCallback(err));
}, err => callback(err));
}
_execSQL(type, sql, ...data) {
const {
callback,
......@@ -94,12 +121,22 @@ export class Pool {
}
run(sql, ...parameters) {
if (sql.toUpperCase().startsWith('ATTACH')) {
this._execOnAllWorkers('run', sql, ...parameters);
}
else {
this._execSQL('run', sql, ...parameters);
}
}
exec(sql, ...parameters) {
if (sql.toUpperCase().startsWith('ATTACH')) {
this._execOnAllWorkers('exec', sql, ...parameters);
}
else {
this._execSQL('exec', sql, ...parameters);
}
}
serialize(callback) {
callback();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment