From 696a3e3bbc3cb45925cfecdbe4b7c02526eb9cd8 Mon Sep 17 00:00:00 2001 From: colin Date: Mon, 2 Oct 2023 16:18:36 +0800 Subject: [PATCH] fix(tasks): Stops a job in execution upon deletion Resolved: #885 --- .../Abp/BackgroundTasks/Quartz/QuartzJobScheduler.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks.Quartz/LINGYUN/Abp/BackgroundTasks/Quartz/QuartzJobScheduler.cs b/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks.Quartz/LINGYUN/Abp/BackgroundTasks/Quartz/QuartzJobScheduler.cs index dc06d1d30..19482454f 100644 --- a/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks.Quartz/LINGYUN/Abp/BackgroundTasks/Quartz/QuartzJobScheduler.cs +++ b/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks.Quartz/LINGYUN/Abp/BackgroundTasks/Quartz/QuartzJobScheduler.cs @@ -45,6 +45,9 @@ public class QuartzJobScheduler : IJobScheduler, IJobPublisher, ISingletonDepend { await Scheduler.PauseTrigger(trigger.Key, cancellationToken); } + + // 当暂停作业时, 需要停止已经在执行中的作业 + await Scheduler.Interrupt(jobKey, cancellationToken); } } @@ -114,6 +117,10 @@ public class QuartzJobScheduler : IJobScheduler, IJobPublisher, ISingletonDepend { await Scheduler.PauseTrigger(trigger.Key, cancellationToken); } + + // 当删除作业时, 需要停止已经在执行中的作业 + await Scheduler.Interrupt(jobKey, cancellationToken); + await Scheduler.DeleteJob(jobKey, cancellationToken); return !await Scheduler.CheckExists(jobKey, cancellationToken);