Swap pk for app-backend path, fix heartbeat task
Signed-off-by: lpete@vmware.com <lpete@vmware.com>
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
'@backstage/backend-tasks': patch
|
||||
'@backstage/plugin-app-backend': patch
|
||||
'@backstage/plugin-bazaar-backend': patch
|
||||
'@backstage/plugin-scaffolder-backend': patch
|
||||
---
|
||||
|
||||
Changes needed to support MySQL
|
||||
|
||||
@@ -24,12 +24,12 @@ exports.up = async function up(knex) {
|
||||
table.comment(
|
||||
'A cache of static assets that where previously deployed and may still be lazy-loaded by clients',
|
||||
);
|
||||
// setting to 64KB to account for long paths
|
||||
table
|
||||
.string('path', 16383)
|
||||
.uuid('id')
|
||||
.primary()
|
||||
.notNullable()
|
||||
.comment('The path of the file');
|
||||
.comment('Auto-generated ID of the asset');
|
||||
table.text('path', 'text').notNullable().comment('The path of the file');
|
||||
table
|
||||
.dateTime('last_modified_at')
|
||||
.defaultTo(knex.fn.now())
|
||||
|
||||
@@ -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,
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user