From b781c601b6ecc4cca5f4769fe4c232ba5bdbbd73 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 15 Apr 2020 17:16:46 +0800 Subject: [PATCH] Add AutoRegister property for IQuartzBackgroundWorker --- .../Quartz/AbpBackgroundWorkersQuartzModule.cs | 5 +++-- .../Abp/BackgroundWorkers/Quartz/IQuartzBackgroundWorker.cs | 2 ++ .../BackgroundWorkers/Quartz/QuartzBackgroundWorkerBase.cs | 2 ++ .../Quartz/QuartzBackgroundWorkerManager.cs | 4 ++-- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/AbpBackgroundWorkersQuartzModule.cs b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/AbpBackgroundWorkersQuartzModule.cs index ff29887b30..cba6c462e9 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/AbpBackgroundWorkersQuartzModule.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/AbpBackgroundWorkersQuartzModule.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Linq; +using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Volo.Abp.Modularity; @@ -33,7 +34,7 @@ namespace Volo.Abp.BackgroundWorkers.Quartz if (options.IsEnabled) { var backgroundWorkerManager = context.ServiceProvider.GetService(); - var works = context.ServiceProvider.GetServices(); + var works = context.ServiceProvider.GetServices().Where(x=>x.AutoRegister); foreach (var work in works) { diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/IQuartzBackgroundWorker.cs b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/IQuartzBackgroundWorker.cs index ffc2117e6f..b536ee9389 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/IQuartzBackgroundWorker.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/IQuartzBackgroundWorker.cs @@ -7,5 +7,7 @@ namespace Volo.Abp.BackgroundWorkers.Quartz ITrigger Trigger { get; set; } IJobDetail JobDetail { get; set; } + + bool AutoRegister { get; set; } } } diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerBase.cs b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerBase.cs index e468ac80f5..00e03af15a 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerBase.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerBase.cs @@ -8,6 +8,8 @@ namespace Volo.Abp.BackgroundWorkers.Quartz public ITrigger Trigger { get; set; } public IJobDetail JobDetail { get; set; } + + public bool AutoRegister { get; set; } = true; public abstract Task Execute(IJobExecutionContext context); } diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerManager.cs b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerManager.cs index d7dd8a2e6e..4bdaca9f6c 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerManager.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerManager.cs @@ -40,10 +40,10 @@ namespace Volo.Abp.BackgroundWorkers.Quartz { Check.NotNull(quartzWork.Trigger, nameof(quartzWork.Trigger)); Check.NotNull(quartzWork.JobDetail, nameof(quartzWork.JobDetail)); - + if (await _scheduler.CheckExists(quartzWork.JobDetail.Key)) { - await _scheduler.AddJob(quartzWork.JobDetail, true); + await _scheduler.AddJob(quartzWork.JobDetail, true, true); await _scheduler.ResumeJob(quartzWork.JobDetail.Key); await _scheduler.RescheduleJob(quartzWork.Trigger.Key, quartzWork.Trigger); }