fixed problem with closing queries in progress

This commit is contained in:
Jan Prochazka
2023-02-26 11:08:20 +01:00
parent 5fd7982f06
commit 4dbb3a72d4

View File

@@ -21,6 +21,7 @@ let afterConnectCallbacks = [];
let lastPing = null; let lastPing = null;
let lastActivity = null; let lastActivity = null;
let currentProfiler = null; let currentProfiler = null;
let executingScripts = 0;
class TableWriter { class TableWriter {
constructor() { constructor() {
@@ -263,6 +264,8 @@ async function handleExecuteQuery({ sql }) {
//process.send({ msgtype: 'error', error: e.message }); //process.send({ msgtype: 'error', error: e.message });
} }
executingScripts++;
try {
const resultIndexHolder = { const resultIndexHolder = {
value: 0, value: 0,
}; };
@@ -277,6 +280,9 @@ async function handleExecuteQuery({ sql }) {
// resultIndex = handler.resultIndex; // resultIndex = handler.resultIndex;
} }
process.send({ msgtype: 'done' }); process.send({ msgtype: 'done' });
} finally {
executingScripts--;
}
} }
async function handleExecuteReader({ jslid, sql, fileName }) { async function handleExecuteReader({ jslid, sql, fileName }) {
@@ -349,7 +355,12 @@ function start() {
storedConnection && storedConnection.globalSettings storedConnection && storedConnection.globalSettings
? extractIntSettingsValue(storedConnection.globalSettings, 'session.autoCloseTimeout', 15, 1, 120) ? extractIntSettingsValue(storedConnection.globalSettings, 'session.autoCloseTimeout', 15, 1, 120)
: 15; : 15;
if (useSessionTimeout && time - lastActivity > sessionTimeout * 60 * 1000 && !currentProfiler) { if (
useSessionTimeout &&
time - lastActivity > sessionTimeout * 60 * 1000 &&
!currentProfiler &&
executingScripts == 0
) {
logger.info('Session not active, exiting'); logger.info('Session not active, exiting');
process.exit(0); process.exit(0);
} }