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..fe327b38d6 100644 --- a/packages/backend-tasks/src/tasks/TaskWorker.ts +++ b/packages/backend-tasks/src/tasks/TaskWorker.ts @@ -51,6 +51,15 @@ export class TaskWorker { `Task worker starting: ${this.taskId}, ${JSON.stringify(settings)}`, ); + let workCheckFrequency = this.workCheckFrequency; + const isCron = !settings?.cadence.startsWith('P'); + if (!isCron) { + const cadence = Duration.fromISO(settings.cadence); + if (cadence < workCheckFrequency) { + workCheckFrequency = cadence; + } + } + let attemptNum = 1; (async () => { for (;;) { @@ -69,7 +78,7 @@ export class TaskWorker { break; } - await sleep(this.workCheckFrequency, options?.signal); + await sleep(workCheckFrequency, options?.signal); } this.logger.info(`Task worker finished: ${this.taskId}`);