Découvrez les Background Services avec .NET 6 : Un Guide Complet
Introduction
.NET 6 offre de nombreuses fonctionnalités puissantes, et l'une d'entre elles est la possibilité de créer des Background Services. Ce type de service permet d'exécuter du code en arrière-plan, indépendamment de toute requête ou interaction utilisateur. C'est idéal pour les tâches qui doivent être exécutées régulièrement, comme la surveillance, le traitement de données ou les tâches planifiées.
Création d'un Background Service
Pour créer un Background Service dans .NET 6, suivez les étapes suivantes :
- Créer un projet .NET 6 Console App.
- Ajouter une nouvelle classe qui hérite de
BackgroundService
:
public class MyBackgroundService : BackgroundService
{
private readonly ILogger _logger;
public MyBackgroundService(ILogger logger)
{
_logger = logger;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
_logger.LogInformation("Exécution du Background Service");
// Code à exécuter en arrière-plan
await Task.Delay(5000, stoppingToken);
}
}
}
- Enregistrement du service dans le conteneur de dépendances.
Dans votre classe
Program
, ajoutez le code suivant :
var builder = WebApplication.CreateBuilder(args);
// Enregistrement du Background Service
builder.Services.AddHostedService();
var app = builder.Build();
app.Run();
- Exécution de l'application.
Lorsque vous exécutez l'application, le Background Service sera lancé et exécutera le code défini dans la méthode
ExecuteAsync
à intervalles réguliers.
Exemple d'utilisation
Imaginons que vous souhaitez créer un Background Service qui vérifie régulièrement l'état d'un serveur et envoie un email en cas d'erreur.
public class ServerHealthCheckService : BackgroundService
{
private readonly ILogger _logger;
private readonly IEmailService _emailService;
public ServerHealthCheckService(ILogger logger, IEmailService emailService)
{
_logger = logger;
_emailService = emailService;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
_logger.LogInformation("Vérification de l'état du serveur");
// Vérification de l'état du serveur
if (!IsServerHealthy())
{
_logger.LogError("Le serveur n'est pas accessible.");
// Envoi d'un email d'alerte
await _emailService.SendEmail("[email protected]", "Erreur serveur", "Le serveur n'est pas accessible.");
}
await Task.Delay(60000, stoppingToken); // Vérification toutes les minutes
}
}
// Méthode pour vérifier l'état du serveur
private bool IsServerHealthy()
{
// Code pour vérifier l'état du serveur
// ...
}
}
Conclusion
Les Background Services sont une fonctionnalité puissante de .NET 6 qui vous permet d'exécuter du code en arrière-plan de manière fiable et efficace. Ils sont idéaux pour les tâches répétitives ou les processus qui doivent s'exécuter en continu. En utilisant les exemples ci-dessus, vous pouvez commencer à intégrer les Background Services dans vos applications .NET 6 et améliorer leurs fonctionnalités.