Swap pk for app-backend path, fix heartbeat task

Signed-off-by: lpete@vmware.com <lpete@vmware.com>
This commit is contained in:
lpete@vmware.com
2023-08-17 11:49:52 -04:00
parent 6ec403f3f0
commit 9ae110cde3
3 changed files with 17 additions and 13 deletions
@@ -261,18 +261,21 @@ export class DatabaseTaskStore implements TaskStore {
tasks: { taskId: string }[];
}> {
const { timeoutS } = options;
let heartbeatInterval = this.db.raw(`? - interval '${timeoutS} seconds'`, [
this.db.fn.now(),
]);
if (this.db.client.config.client.includes('mysql')) {
heartbeatInterval = this.db.raw(
`date_sub(now(), interval ${timeoutS} second)`,
);
} else if (this.db.client.config.client.includes('sqlite3')) {
heartbeatInterval = this.db.raw(`datetime('now', ?)`, [
`-${timeoutS} seconds`,
]);
}
const rawRows = await this.db<RawDbTaskRow>('tasks')
.where('status', 'processing')
.andWhere(
'last_heartbeat_at',
'<=',
this.db.client.config.client.includes('sqlite3')
? this.db.raw(`datetime('now', ?)`, [`-${timeoutS} seconds`])
: this.db.raw(`? - interval '${timeoutS} seconds'`, [
this.db.fn.now(),
]),
);
.andWhere('last_heartbeat_at', '<=', heartbeatInterval);
const tasks = rawRows.map(row => ({
taskId: row.id,
}));