refactor(core): Deregistering cronjobs should also release them (no-changelog) (#11179)

This commit is contained in:
कारतोफ्फेलस्क्रिप्ट™ 2024-10-09 12:11:46 +02:00 committed by GitHub
parent 121e4c741b
commit b1ab21aa04
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 2 deletions

View file

@ -30,8 +30,9 @@ export class ScheduledTaskManager {
deregisterCrons(workflowId: string) {
const cronJobs = this.cronJobs.get(workflowId) ?? [];
for (const cronJob of cronJobs) {
cronJob.stop();
while (cronJobs.length) {
const cronJob = cronJobs.pop();
if (cronJob) cronJob.stop();
}
}

View file

@ -56,8 +56,13 @@ describe('ScheduledTaskManager', () => {
scheduledTaskManager.registerCron(workflow, everyMinute, onTick);
scheduledTaskManager.registerCron(workflow, everyMinute, onTick);
scheduledTaskManager.registerCron(workflow, everyMinute, onTick);
expect(scheduledTaskManager.cronJobs.get(workflow.id)?.length).toBe(3);
scheduledTaskManager.deregisterCrons(workflow.id);
expect(scheduledTaskManager.cronJobs.get(workflow.id)?.length).toBe(0);
expect(onTick).not.toHaveBeenCalled();
jest.advanceTimersByTime(10 * 60 * 1000); // 10 minutes
expect(onTick).not.toHaveBeenCalled();