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.