Services en arrière-plan (BackgroundService)
AvancéPour exécuter du code de manière continue à côté du serveur web (traitement de file, tâche planifiée, worker...), sans dépendre d'une requête HTTP.
public class NettoyageService(ILogger<NettoyageService> logger) : BackgroundService
{
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
logger.LogInformation("Nettoyage des fichiers temporaires...");
// ... logique de nettoyage ...
await Task.Delay(TimeSpan.FromHours(1), stoppingToken);
}
}
}
// Enregistrement
builder.Services.AddHostedService<NettoyageService>();
Astuce :
stoppingTokenest annulé automatiquement quand l'application s'arrête — le respecter permet un arrêt propre (graceful shutdown) au lieu de couper brutalement une tâche en cours.