refactor: add connectionTimeout to psql

only sleep if there is more than one iteration in processSortedSet
isekai-main
Barış Soner Uşaklı 2 years ago
parent 2ecf15c4d9
commit 90f29571f1

@ -44,7 +44,7 @@ connection.getConnectionString = function (mongo) {
connection.getConnectionOptions = function (mongo) {
mongo = mongo || nconf.get('mongo');
const connOptions = {
maxPoolSize: 10,
maxPoolSize: 20,
minPoolSize: 3,
connectTimeoutMS: 90000,
};

@ -574,7 +574,7 @@ module.exports = function (module) {
if (processFn && processFn.constructor && processFn.constructor.name !== 'AsyncFunction') {
processFn = util.promisify(processFn);
}
let iteration = 1;
while (!done) {
/* eslint-disable no-await-in-loop */
const item = await cursor.next();
@ -585,12 +585,12 @@ module.exports = function (module) {
}
if (ids.length >= options.batch || (done && ids.length !== 0)) {
await processFn(ids);
ids.length = 0;
if (options.interval) {
if (iteration > 1 && options.interval) {
await sleep(options.interval);
}
await processFn(ids);
iteration += 1;
ids.length = 0;
}
}
};

@ -28,6 +28,8 @@ connection.getConnectionOptions = function (postgres) {
password: postgres.password,
database: postgres.database,
ssl: String(postgres.ssl) === 'true',
max: 20,
connectionTimeoutMillis: 90000,
};
return _.merge(connOptions, postgres.options || {});

@ -677,7 +677,7 @@ SELECT z."value", z."score"
if (process && process.constructor && process.constructor.name !== 'AsyncFunction') {
process = util.promisify(process);
}
let iteration = 1;
while (true) {
/* eslint-disable no-await-in-loop */
let rows = await cursor.readAsync(batchSize);
@ -692,14 +692,15 @@ SELECT z."value", z."score"
rows = rows.map(r => r.value);
}
try {
if (iteration > 1 && options.interval) {
await sleep(options.interval);
}
await process(rows);
iteration += 1;
} catch (err) {
await client.release();
throw err;
}
if (options.interval) {
await sleep(options.interval);
}
}
};
};

Loading…
Cancel
Save