mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-23 23:05:59 +00:00
fixed problem with closing queries in progress
This commit is contained in:
@@ -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,20 +264,25 @@ async function handleExecuteQuery({ sql }) {
|
|||||||
//process.send({ msgtype: 'error', error: e.message });
|
//process.send({ msgtype: 'error', error: e.message });
|
||||||
}
|
}
|
||||||
|
|
||||||
const resultIndexHolder = {
|
executingScripts++;
|
||||||
value: 0,
|
try {
|
||||||
};
|
const resultIndexHolder = {
|
||||||
for (const sqlItem of splitQuery(sql, {
|
value: 0,
|
||||||
...driver.getQuerySplitterOptions('stream'),
|
};
|
||||||
returnRichInfo: true,
|
for (const sqlItem of splitQuery(sql, {
|
||||||
})) {
|
...driver.getQuerySplitterOptions('stream'),
|
||||||
await handleStream(driver, resultIndexHolder, sqlItem);
|
returnRichInfo: true,
|
||||||
// const handler = new StreamHandler(resultIndex);
|
})) {
|
||||||
// const stream = await driver.stream(systemConnection, sqlItem, handler);
|
await handleStream(driver, resultIndexHolder, sqlItem);
|
||||||
// handler.stream = stream;
|
// const handler = new StreamHandler(resultIndex);
|
||||||
// resultIndex = handler.resultIndex;
|
// const stream = await driver.stream(systemConnection, sqlItem, handler);
|
||||||
|
// handler.stream = stream;
|
||||||
|
// resultIndex = handler.resultIndex;
|
||||||
|
}
|
||||||
|
process.send({ msgtype: 'done' });
|
||||||
|
} finally {
|
||||||
|
executingScripts--;
|
||||||
}
|
}
|
||||||
process.send({ msgtype: 'done' });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user