DKNet

DKNet.AspCore.Tasks

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.

✨ Why use it?

🚀 Quick Start

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.

⚙️ Registration Options

🧱 Architectural Role

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.

✅ Best Practices