.net Core Web Api Scheduled Task

4 min read Jun 03, 2024
.net Core Web Api Scheduled Task

Planifier des tâches dans une API Web .NET Core

Introduction

Les API Web .NET Core sont un moyen populaire de créer des services web qui exposent des données et des fonctionnalités aux applications clientes. Il est souvent nécessaire de planifier certaines tâches pour s'exécuter à des moments précis ou à intervalles réguliers. Dans cet article, nous allons explorer comment créer des tâches planifiées dans une API Web .NET Core.

Utilisation de Hosted Services

.NET Core fournit un modèle pour créer des services hébergés, qui sont des classes qui s'exécutent en arrière-plan et peuvent effectuer des tâches de longue durée. Pour planifier des tâches, nous pouvons utiliser le service hébergé IHostedService et l'interface ITimedHostedService.

Voici un exemple de code pour créer un service hébergé qui s'exécute toutes les 5 minutes :

public class MyScheduledTask : IHostedService, ITimedHostedService
{
    private readonly ILogger _logger;
    private Timer _timer;

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

    public Task StartAsync(CancellationToken cancellationToken)
    {
        _logger.LogInformation("Démarrage de la tâche planifiée.");

        // Définir l'intervalle d'exécution (5 minutes)
        _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromMinutes(5));

        return Task.CompletedTask;
    }

    public Task StopAsync(CancellationToken cancellationToken)
    {
        _logger.LogInformation("Arrêt de la tâche planifiée.");
        _timer?.Dispose();

        return Task.CompletedTask;
    }

    private void DoWork(object state)
    {
        _logger.LogInformation("Exécution de la tâche planifiée.");

        // Code à exécuter à chaque intervalle
    }
}

Dans cet exemple, la méthode DoWork est appelée toutes les 5 minutes par le timer. Vous pouvez remplacer ce code par votre propre logique d'affaires.

Enregistrement du service hébergé

Une fois que vous avez créé votre service hébergé, vous devez l'enregistrer dans le conteneur de services de votre application. Ajoutez le code suivant à votre méthode ConfigureServices dans le fichier Startup.cs :

public void ConfigureServices(IServiceCollection services)
{
    // ... autres services

    // Enregistrer le service hébergé
    services.AddHostedService(); 
}

Exécution de la tâche planifiée

Maintenant, lorsque vous démarrez votre application, la tâche planifiée sera exécutée toutes les 5 minutes comme défini dans le code.

Conclusion

Planifier des tâches dans une API Web .NET Core est simple grâce aux services hébergés. Vous pouvez créer des tâches qui s'exécutent à des moments précis ou à des intervalles réguliers pour automatiser des processus et améliorer l'efficacité de votre application. N'oubliez pas d'enregistrer vos services hébergés dans le conteneur de services de votre application pour qu'ils puissent être exécutés correctement.

Related Post