From ae60130b78f43a03be39c0f4b8c918ff066c388f Mon Sep 17 00:00:00 2001 From: OscarDHdz Date: Mon, 12 Sep 2022 10:03:18 -0500 Subject: [PATCH] Scaffolder: Make Close stale tasks default Signed-off-by: OscarDHdz --- plugins/scaffolder-backend/api-report.md | 2 - .../src/service/router.test.ts | 2 - .../scaffolder-backend/src/service/router.ts | 45 ++++++++----------- 3 files changed, 19 insertions(+), 30 deletions(-) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 3fb0b2631f..35e3dab0b5 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -554,8 +554,6 @@ export interface RouterOptions { // (undocumented) taskBroker?: TaskBroker; // (undocumented) - taskStore?: DatabaseTaskStore; - // (undocumented) taskWorkers?: number; } diff --git a/plugins/scaffolder-backend/src/service/router.test.ts b/plugins/scaffolder-backend/src/service/router.test.ts index 1df419fbb3..5e3c1c7278 100644 --- a/plugins/scaffolder-backend/src/service/router.test.ts +++ b/plugins/scaffolder-backend/src/service/router.test.ts @@ -151,7 +151,6 @@ describe('createRouter', () => { database: createDatabase(), catalogClient, reader: mockUrlReader, - taskStore: databaseTaskStore, taskBroker, }); app = express().use(router); @@ -751,7 +750,6 @@ data: {"id":1,"taskId":"a-random-id","type":"completion","createdAt":"","body":{ database: createDatabase(), catalogClient, reader: mockUrlReader, - taskStore: databaseTaskStore, taskBroker, identity: { getIdentity }, }); diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 2a48b0f5d1..a423e8afb6 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -69,7 +69,6 @@ export interface RouterOptions { actions?: TemplateAction[]; taskWorkers?: number; taskBroker?: TaskBroker; - taskStore?: DatabaseTaskStore; additionalTemplateFilters?: Record; identity?: IdentityApi; } @@ -171,16 +170,28 @@ export async function createRouter( const workingDirectory = await getWorkingDirectory(config, logger); const integrations = ScmIntegrations.fromConfig(config); - let databaseTaskStore: DatabaseTaskStore; - if (!options.taskStore) { - databaseTaskStore = await DatabaseTaskStore.create({ database }); - } else { - databaseTaskStore = options.taskStore; - } - let taskBroker: TaskBroker; if (!options.taskBroker) { + const databaseTaskStore = await DatabaseTaskStore.create({ database }); taskBroker = new StorageTaskBroker(databaseTaskStore, logger); + + if (scheduler && databaseTaskStore.listStaleTasks) { + await scheduler.scheduleTask({ + id: 'close_stale_tasks', + frequency: { cron: '*/5 * * * *' }, // every 5 minutes, also supports Duration + timeout: { minutes: 15 }, + fn: async () => { + const { tasks } = await databaseTaskStore.listStaleTasks({ + timeoutS: 3600, + }); + + for (const task of tasks) { + await databaseTaskStore.shutdownTask(task); + logger.info(`Successfully closed stale task ${task.taskId}`); + } + }, + }); + } } else { taskBroker = options.taskBroker; } @@ -213,24 +224,6 @@ export async function createRouter( actionsToRegister.forEach(action => actionRegistry.register(action)); workers.forEach(worker => worker.start()); - if (scheduler && databaseTaskStore.listStaleTasks) { - await scheduler.scheduleTask({ - id: 'close_stale_tasks', - frequency: { cron: '*/5 * * * *' }, // every 5 minutes, also supports Duration - timeout: { minutes: 15 }, - fn: async () => { - const { tasks } = await databaseTaskStore.listStaleTasks({ - timeoutS: 3600, - }); - - for (const task of tasks) { - await databaseTaskStore.shutdownTask(task); - logger.info(`Successfully closed stale task ${task.taskId}`); - } - }, - }); - } - const dryRunner = createDryRunner({ actionRegistry, integrations,