Skip to content

Commit

Permalink
[feature] Filter old rows in getCountWithStatus while "shutdown"
Browse files Browse the repository at this point in the history
  • Loading branch information
konovalovsergey committed Sep 12, 2024
1 parent dc1932b commit 9c3f9aa
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 6 deletions.
8 changes: 5 additions & 3 deletions DocService/sources/databaseConnectors/baseConnector.js
Original file line number Diff line number Diff line change
Expand Up @@ -297,11 +297,13 @@ function getExpired(ctx, maxCount, expireSeconds) {
}, false, false, values);
});
}
function getCountWithStatus(ctx, status) {
function getCountWithStatus(ctx, status, expireMs) {
return new Promise(function(resolve, reject) {
const values = [];
const sqlParam = addSqlParameter(status, values);
const sqlCommand = `SELECT COUNT(id) AS count FROM ${cfgTableResult} WHERE status=${sqlParam};`;
const expireDate = new Date(Date.now() - expireMs);
const sqlStatus = addSqlParameter(status, values);
const sqlDate = addSqlParameter(expireDate, values);
const sqlCommand = `SELECT COUNT(id) AS count FROM ${cfgTableResult} WHERE status=${sqlStatus} AND last_open_date>${sqlDate};`;
dbInstance.sqlQuery(ctx, sqlCommand, function(error, result) {
if (error) {
reject(error);
Expand Down
2 changes: 1 addition & 1 deletion DocService/sources/shutdown.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ exports.shutdown = function(ctx, editorStat, status) {
break;
}
var remainingFiles = yield editorStat.getShutdownCount(redisKeyShutdown);
let inSavingStatus = yield sqlBase.getCountWithStatus(ctx, commonDefines.FileStatus.SaveVersion);
let inSavingStatus = yield sqlBase.getCountWithStatus(ctx, commonDefines.FileStatus.SaveVersion, EXEC_TIMEOUT);
ctx.logger.debug('shutdown remaining files editorStat:%d, db:%d', remainingFiles, inSavingStatus);
if (!isStartWait && (remainingFiles + inSavingStatus) <= 0) {
break;
Expand Down
6 changes: 4 additions & 2 deletions tests/integration/databaseTests/baseConnector.tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ const operationContext = require('../../../Common/sources/operationContext');
const taskResult = require('../../../DocService/sources/taskresult');
const commonDefines = require('../../../Common/sources/commondefines');
const constants = require('../../../Common/sources/constants');
const utils = require("../../../Common/sources/utils");
const configSql = config.get('services.CoAuthoring.sql');

const ctx = new operationContext.Context();
Expand Down Expand Up @@ -420,14 +421,15 @@ describe('Base database connector', function () {
test('Get Count With Status', async function () {
let countWithStatus;
let unknownStatus = 99;//to avoid collision with running server
countWithStatus = await baseConnector.getCountWithStatus(ctx, unknownStatus);
let EXEC_TIMEOUT = 30000 + utils.getConvertionTimeout(undefined);
countWithStatus = await baseConnector.getCountWithStatus(ctx, unknownStatus, EXEC_TIMEOUT);
expect(countWithStatus).toEqual(0);
for (const id of getCountWithStatusCase) {
const task = createTask(id);
task.status = unknownStatus;
await insertIntoResultTable(date, task);
}
countWithStatus = await baseConnector.getCountWithStatus(ctx, unknownStatus);
countWithStatus = await baseConnector.getCountWithStatus(ctx, unknownStatus, EXEC_TIMEOUT);
expect(countWithStatus).toEqual(getCountWithStatusCase.length);
});
});
Expand Down

0 comments on commit 9c3f9aa

Please sign in to comment.