From 8b59155d8875451f5ce08ce7365e935837b8d2ee Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 27 Mar 2020 17:35:42 +0800 Subject: [PATCH] Implement IsJobExecutionEnabled for all background job providers --- .../BackgroundJobs/AbpBackgroundJobOptions.cs | 3 +-- .../BackgroundJobs/NullBackgroundJobManager.cs | 3 ++- .../Hangfire/AbpBackgroundJobsHangfireModule.cs | 16 ++++++++++++---- .../Quartz/AbpBackgroundJobsQuartzModule.cs | 10 +++++++++- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/AbpBackgroundJobOptions.cs b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/AbpBackgroundJobOptions.cs index a16bc418a7..6ca409ec56 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/AbpBackgroundJobOptions.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/AbpBackgroundJobOptions.cs @@ -8,8 +8,7 @@ namespace Volo.Abp.BackgroundJobs { private readonly Dictionary _jobConfigurationsByArgsType; private readonly Dictionary _jobConfigurationsByName; - - //TODO: Implement for all providers! (Hangfire does not implement yet) + /// /// Default: true. /// diff --git a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/NullBackgroundJobManager.cs b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/NullBackgroundJobManager.cs index f7d9fdd88a..6c8c37d183 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/NullBackgroundJobManager.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/NullBackgroundJobManager.cs @@ -19,7 +19,8 @@ namespace Volo.Abp.BackgroundJobs public virtual Task EnqueueAsync(TArgs args, BackgroundJobPriority priority = BackgroundJobPriority.Normal, TimeSpan? delay = null) { - throw new AbpException("Background job system has not a real implementation. If it's mandatory, use an implementation (either the default provider or a 3rd party implementation). If it's optional, check IBackgroundJobManager.IsAvailable() extension method and act based on it."); + //throw new AbpException("Background job system has not a real implementation. If it's mandatory, use an implementation (either the default provider or a 3rd party implementation). If it's optional, check IBackgroundJobManager.IsAvailable() extension method and act based on it."); + return Task.FromResult(string.Empty); } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo/Abp/BackgroundJobs/Hangfire/AbpBackgroundJobsHangfireModule.cs b/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo/Abp/BackgroundJobs/Hangfire/AbpBackgroundJobsHangfireModule.cs index 066dccc28f..0a534d819a 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo/Abp/BackgroundJobs/Hangfire/AbpBackgroundJobsHangfireModule.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo/Abp/BackgroundJobs/Hangfire/AbpBackgroundJobsHangfireModule.cs @@ -1,4 +1,5 @@ -using Volo.Abp.Hangfire; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Hangfire; using Volo.Abp.Modularity; namespace Volo.Abp.BackgroundJobs.Hangfire @@ -6,9 +7,16 @@ namespace Volo.Abp.BackgroundJobs.Hangfire [DependsOn( typeof(AbpBackgroundJobsAbstractionsModule), typeof(AbpHangfireModule) - )] + )] public class AbpBackgroundJobsHangfireModule : AbpModule { - + public override void ConfigureServices(ServiceConfigurationContext context) + { + var options = context.Services.ExecutePreConfiguredActions(); + if (!options.IsJobExecutionEnabled) + { + context.Services.AddSingleton(x => new NullBackgroundJobManager()); + } + } } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobsQuartzModule.cs b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobsQuartzModule.cs index d5f84ed91e..9f3d1b11a0 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobsQuartzModule.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobsQuartzModule.cs @@ -12,7 +12,15 @@ namespace Volo.Abp.BackgroundJobs.Quartz { public override void ConfigureServices(ServiceConfigurationContext context) { - context.Services.AddTransient(typeof(QuartzJobExecutionAdapter<>)); + var options = context.Services.ExecutePreConfiguredActions(); + if (!options.IsJobExecutionEnabled) + { + context.Services.AddSingleton(x => new NullBackgroundJobManager()); + } + else + { + context.Services.AddTransient(typeof(QuartzJobExecutionAdapter<>)); + } } } }