Background task orchestration for ASP.NET Core applications. The package wraps IHostedService with a convenient API
for discovering and running IBackgroundTask implementations during application start-up.
AddBackgroundJob helpers.builder.Services.AddBackgroundJob<SeedReferenceDataTask>();
// or scan assemblies
builder.Services.AddBackgroundJobFrom(new[] { typeof(Program).Assembly });
Implement IBackgroundTask for each start-up task:
public sealed class SeedReferenceDataTask(IMySeeder seeder, ILogger<SeedReferenceDataTask> logger) : IBackgroundTask
{
public async Task RunAsync(CancellationToken cancellationToken = default)
{
logger.LogInformation("Seeding reference data");
await seeder.SeedAsync(cancellationToken);
}
}
Jobs execute once the host starts, leveraging the BackgroundJobHost to coordinate execution.
AddBackgroundJob<TTask>() – Register a specific job type.AddBackgroundJobFrom(IEnumerable<Assembly>) – Scan assemblies for every IBackgroundTask implementation.AddBackgroundJobFrom(params Assembly[]) – Convenience overload for inline arrays.AddBackgroundJobFrom(AppDomain.CurrentDomain.GetAssemblies()) – Discover jobs across the entire application domain.DKNet.AspCore.Tasks belongs to the application layer, orchestrating cross-cutting operations (seed data, queue warm-up,
cache hydration) before inbound traffic hits controllers or message processors. It keeps domain logic isolated by delegating to
services injected into each job.
CancellationToken to support graceful shutdown during container stop events.