Browse Source

Implement IsJobExecutionEnabled for all background job providers

pull/3382/head
liangshiwei 6 years ago
parent
commit
8b59155d88
  1. 3
      framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/AbpBackgroundJobOptions.cs
  2. 3
      framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/NullBackgroundJobManager.cs
  3. 16
      framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo/Abp/BackgroundJobs/Hangfire/AbpBackgroundJobsHangfireModule.cs
  4. 10
      framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobsQuartzModule.cs

3
framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/AbpBackgroundJobOptions.cs

@ -8,8 +8,7 @@ namespace Volo.Abp.BackgroundJobs
{
private readonly Dictionary<Type, BackgroundJobConfiguration> _jobConfigurationsByArgsType;
private readonly Dictionary<string, BackgroundJobConfiguration> _jobConfigurationsByName;
//TODO: Implement for all providers! (Hangfire does not implement yet)
/// <summary>
/// Default: true.
/// </summary>

3
framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/NullBackgroundJobManager.cs

@ -19,7 +19,8 @@ namespace Volo.Abp.BackgroundJobs
public virtual Task<string> EnqueueAsync<TArgs>(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);
}
}
}

16
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<AbpBackgroundJobOptions>();
if (!options.IsJobExecutionEnabled)
{
context.Services.AddSingleton<IBackgroundJobManager>(x => new NullBackgroundJobManager());
}
}
}
}
}

10
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<AbpBackgroundJobOptions>();
if (!options.IsJobExecutionEnabled)
{
context.Services.AddSingleton<IBackgroundJobManager>(x => new NullBackgroundJobManager());
}
else
{
context.Services.AddTransient(typeof(QuartzJobExecutionAdapter<>));
}
}
}
}

Loading…
Cancel
Save