Browse Source

Refactor background worker initialization to use optional cancellation token from IHostApplicationLifetime

pull/23207/head
maliming 1 year ago
parent
commit
0ec1fd45a0
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 13
      framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/AbpBackgroundWorkersModule.cs
  2. 7
      framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/BackgroundWorkersApplicationInitializationContextExtensions.cs

13
framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/AbpBackgroundWorkersModule.cs

@ -1,4 +1,5 @@
using System.Threading.Tasks;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options;
@ -17,10 +18,11 @@ public class AbpBackgroundWorkersModule : AbpModule
var options = context.ServiceProvider.GetRequiredService<IOptions<AbpBackgroundWorkerOptions>>().Value;
if (options.IsEnabled)
{
var hostApplicationLifetime = context.ServiceProvider.GetRequiredService<IHostApplicationLifetime>();
var hostApplicationLifetime = context.ServiceProvider.GetService<IHostApplicationLifetime>();
var cancellationToken = hostApplicationLifetime?.ApplicationStopping ?? CancellationToken.None;
await context.ServiceProvider
.GetRequiredService<IBackgroundWorkerManager>()
.StartAsync(hostApplicationLifetime.ApplicationStopping);
.StartAsync(cancellationToken);
}
}
@ -29,10 +31,11 @@ public class AbpBackgroundWorkersModule : AbpModule
var options = context.ServiceProvider.GetRequiredService<IOptions<AbpBackgroundWorkerOptions>>().Value;
if (options.IsEnabled)
{
var hostApplicationLifetime = context.ServiceProvider.GetRequiredService<IHostApplicationLifetime>();
var hostApplicationLifetime = context.ServiceProvider.GetService<IHostApplicationLifetime>();
var cancellationToken = hostApplicationLifetime?.ApplicationStopping ?? CancellationToken.None;
await context.ServiceProvider
.GetRequiredService<IBackgroundWorkerManager>()
.StopAsync(hostApplicationLifetime.ApplicationStopping);
.StopAsync(cancellationToken);
}
}

7
framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/BackgroundWorkersApplicationInitializationContextExtensions.cs

@ -31,8 +31,11 @@ public static class BackgroundWorkersApplicationInitializationContextExtensions
if (cancellationToken == default)
{
var hostApplicationLifetime = context.ServiceProvider.GetRequiredService<IHostApplicationLifetime>();
cancellationToken = hostApplicationLifetime.ApplicationStopping;
var hostApplicationLifetime = context.ServiceProvider.GetService<IHostApplicationLifetime>();
if (hostApplicationLifetime != null)
{
cancellationToken = hostApplicationLifetime.ApplicationStopping;
}
}
await context.ServiceProvider

Loading…
Cancel
Save