From d8f488aaa8e97c7a4e20b6bb7395cb53890ab464 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 6 Nov 2023 16:45:46 -0600 Subject: [PATCH] backend-tasks: allow tasks to run more frequently than the default work check interval Signed-off-by: Patrik Oldsberg --- .changeset/lovely-terms-search.md | 5 +++++ packages/backend-tasks/src/tasks/TaskWorker.ts | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 .changeset/lovely-terms-search.md diff --git a/.changeset/lovely-terms-search.md b/.changeset/lovely-terms-search.md new file mode 100644 index 0000000000..7590a0d5a6 --- /dev/null +++ b/.changeset/lovely-terms-search.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-tasks': patch +--- + +Allow tasks to run more often that the default work check interval, which is 5 seconds. diff --git a/packages/backend-tasks/src/tasks/TaskWorker.ts b/packages/backend-tasks/src/tasks/TaskWorker.ts index 4e10f0b5b2..65dfd9802d 100644 --- a/packages/backend-tasks/src/tasks/TaskWorker.ts +++ b/packages/backend-tasks/src/tasks/TaskWorker.ts @@ -51,6 +51,10 @@ export class TaskWorker { `Task worker starting: ${this.taskId}, ${JSON.stringify(settings)}`, ); + const cadence = Duration.fromISO(settings.cadence); + const workCheckFrequency = + cadence < this.workCheckFrequency ? cadence : this.workCheckFrequency; + let attemptNum = 1; (async () => { for (;;) { @@ -69,7 +73,7 @@ export class TaskWorker { break; } - await sleep(this.workCheckFrequency, options?.signal); + await sleep(workCheckFrequency, options?.signal); } this.logger.info(`Task worker finished: ${this.taskId}`);