.net 6 Backgroundservice Example

4 min read Jun 03, 2024
.net 6 Backgroundservice Example

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 :

  1. Créer un projet .NET 6 Console App.
  2. 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);
        }
    }
}
  1. 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();
  1. 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.

Featured Posts