.net 6 Background Service

5 min read Jun 03, 2024
.net 6 Background Service

Créer des services d'arrière-plan avec .NET 6

Introduction

.NET 6 est une plateforme puissante pour le développement d'applications modernes. En plus des applications web traditionnelles, .NET 6 vous permet également de créer des services d'arrière-plan qui peuvent s'exécuter en permanence et effectuer des tâches spécifiques, telles que la surveillance des données, le traitement des tâches chronométrées ou l'interaction avec des API externes.

Qu'est-ce qu'un service d'arrière-plan ?

Un service d'arrière-plan est une application qui s'exécute en arrière-plan, indépendamment de l'interface utilisateur. Ces services ne nécessitent pas d'interaction directe de l'utilisateur et peuvent fonctionner de manière continue, en effectuant des tâches pré-définies.

Création d'un service d'arrière-plan avec .NET 6

Pour créer un service d'arrière-plan avec .NET 6, vous pouvez utiliser l'interface IHostedService. Cette interface définit deux méthodes :

  • StartAsync(): Cette méthode est appelée lorsque le service démarre. Vous pouvez y placer le code qui initie les tâches à effectuer.
  • StopAsync(): Cette méthode est appelée lorsque le service est arrêté. Vous pouvez y placer le code qui arrête les tâches en cours et nettoie les ressources.

Voici un exemple simple de service d'arrière-plan qui affiche un message de journalisation toutes les 5 secondes :

public class MyBackgroundService : IHostedService
{
    private readonly ILogger _logger;
    private Timer _timer;

    public MyBackgroundService(ILogger logger)
    {
        _logger = logger;
    }

    public Task StartAsync(CancellationToken cancellationToken)
    {
        _timer = new Timer(DoWork, null, 0, 5000);
        _logger.LogInformation("Le service d'arrière-plan a démarré.");
        return Task.CompletedTask;
    }

    public Task StopAsync(CancellationToken cancellationToken)
    {
        _timer?.Change(Timeout.Infinite, Timeout.Infinite);
        _logger.LogInformation("Le service d'arrière-plan a arrêté.");
        return Task.CompletedTask;
    }

    private void DoWork(object state)
    {
        _logger.LogInformation("Exécution de la tâche de service d'arrière-plan.");
    }
}

Configuration et exécution du service d'arrière-plan

  1. Ajoutez le service à votre application. Dans votre classe Program, ajoutez le service à la collection de services :
builder.Services.AddHostedService();
  1. Configurez l'hôte de votre application. Dans la méthode CreateHostBuilder de votre classe Program, configurez l'hôte pour qu'il s'exécute en arrière-plan :
public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup();
        })
        .UseWindowsService(); // Pour Windows
        .UseSystemd(); // Pour Linux
  1. Exécutez l'application. Votre service d'arrière-plan est maintenant configuré et s'exécutera en permanence.

Conclusion

.NET 6 vous offre une manière simple et efficace de créer des services d'arrière-plan performants. Grâce à l'interface IHostedService, vous pouvez facilement gérer le cycle de vie de votre service et exécuter des tâches spécifiques en arrière-plan.

N'hésitez pas à explorer les possibilités offertes par les services d'arrière-plan dans .NET 6 pour enrichir vos applications et optimiser vos processus métier.