.net Core Backgroundservice Example

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

Exemple de BackgroundService dans ASP.NET Core

Introduction

ASP.NET Core offre une variété de fonctionnalités pour créer des applications web robustes et performantes. Parmi ces fonctionnalités, le modèle BackgroundService est un outil précieux pour exécuter des tâches en arrière-plan sans affecter la réactivité de votre application principale. Dans cet article, nous allons explorer un exemple concret de l'utilisation de BackgroundService dans ASP.NET Core.

Qu'est-ce que BackgroundService ?

BackgroundService est une interface dans ASP.NET Core qui définit une méthode ExecuteAsync qui est exécutée de manière asynchrone en arrière-plan. Cela permet d'exécuter des tâches longues ou périodiques sans bloquer le thread principal de l'application.

Exemple pratique : Tâche périodique

Imaginons que vous souhaitez exécuter une tâche qui met à jour une base de données toutes les 5 minutes. Voici un exemple de code qui utilise BackgroundService pour réaliser cette tâche :

public class UpdateDatabaseService : BackgroundService
{
    private readonly ILogger _logger;
    private readonly IDatabaseContext _dbContext;

    public UpdateDatabaseService(ILogger logger, IDatabaseContext dbContext)
    {
        _logger = logger;
        _dbContext = dbContext;
    }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        while (!stoppingToken.IsCancellationRequested)
        {
            try
            {
                _logger.LogInformation("Mise à jour de la base de données...");
                // Code pour mettre à jour la base de données
                await _dbContext.SaveChangesAsync();
                _logger.LogInformation("Base de données mise à jour avec succès.");
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Erreur lors de la mise à jour de la base de données.");
            }

            await Task.Delay(TimeSpan.FromMinutes(5), stoppingToken);
        }
    }
}

Dans cet exemple, la méthode ExecuteAsync est exécutée en boucle jusqu'à ce que le token d'annulation soit demandé. À chaque itération, la méthode met à jour la base de données et attend 5 minutes avant de recommencer.

Configuration de BackgroundService

Pour utiliser BackgroundService, vous devez l'enregistrer dans votre application ASP.NET Core. Voici un exemple de code dans le fichier Startup.cs :

public void ConfigureServices(IServiceCollection services)
{
    services.AddHostedService();
    // Autres services
}

En ajoutant UpdateDatabaseService à la collection de services, ASP.NET Core l'initialise et le lance en arrière-plan.

Conclusion

BackgroundService est un outil puissant pour exécuter des tâches en arrière-plan dans ASP.NET Core. Il permet de séparer les tâches longues ou périodiques du thread principal, améliorant ainsi la réactivité et les performances de votre application. En utilisant cet exemple, vous pouvez facilement implémenter vos propres services d'arrière-plan et optimiser votre application ASP.NET Core. N'hésitez pas à explorer les options avancées de BackgroundService pour des scénarios plus complexes.

Related Post


Featured Posts