wip(sync): merge main into next with combined resolutions

This commit is contained in:
2026-08-02 23:11:22 -05:00
628 changed files with 126796 additions and 4189 deletions
+17
View File
@@ -194,6 +194,23 @@ export class QueueService implements OnModuleInit, OnModuleDestroy {
);
}
/**
* Remove every existing repeatable schedule for a job name. This supports
* safe retirement of previously registered system-wide jobs.
*/
async removeRepeatableJobs(queueName: string, jobName: string): Promise<number> {
const queue = this.getQueue(queueName);
const jobs = await queue.getRepeatableJobs();
const matchingJobs = jobs.filter((job) => job.name === jobName);
await Promise.all(matchingJobs.map((job) => queue.removeRepeatableByKey(job.key)));
if (matchingJobs.length > 0) {
this.logger.log(
`Removed ${matchingJobs.length} repeatable "${jobName}" job(s) from "${queueName}"`,
);
}
return matchingJobs.length;
}
/**
* Register a Worker for the given queue name with error handling and
* exponential backoff.