.net Core Task Scheduler Example

4 min read Jun 03, 2024
.net Core Task Scheduler Example

Planifiez des tâches avec .NET Core : Un guide pratique

Introduction

.NET Core offre une variété d'outils pour gérer des tâches planifiées. Que vous ayez besoin d'exécuter des scripts, des tâches de maintenance ou des processus récurrents, le système de planification intégré de .NET Core vous permet de l'automatiser facilement.

Dans cet article, nous allons explorer un exemple pratique de la façon dont vous pouvez implémenter un planificateur de tâches dans une application .NET Core. Nous verrons comment utiliser le package Microsoft.Extensions.Hosting pour créer des tâches qui s'exécutent à intervalles réguliers ou à des moments précis.

Un exemple concret : Envoyer des e-mails périodiques

Imaginons que vous souhaitez envoyer des e-mails de rappel à vos clients à intervalles réguliers. Voici comment vous pouvez utiliser le planificateur de tâches de .NET Core pour automatiser cette tâche:

using Microsoft.Extensions.Hosting;
using System;
using System.Threading;
using System.Threading.Tasks;

public class EmailReminderService : IHostedService, IDisposable
{
    private Timer _timer;

    public Task StartAsync(CancellationToken cancellationToken)
    {
        // Définir l'intervalle de temps entre chaque envoi d'e-mail (1 minute dans cet exemple)
        _timer = new Timer(SendReminderEmails, null, TimeSpan.Zero, TimeSpan.FromMinutes(1));
        return Task.CompletedTask;
    }

    private void SendReminderEmails(object state)
    {
        // Logique pour envoyer des e-mails de rappel aux clients
        Console.WriteLine("Envoi des e-mails de rappel...");
        // Code pour envoyer des e-mails
    }

    public Task StopAsync(CancellationToken cancellationToken)
    {
        _timer?.Dispose();
        return Task.CompletedTask;
    }

    public void Dispose()
    {
        _timer?.Dispose();
    }
}

Ce code définit un service nommé EmailReminderService qui implémente l'interface IHostedService. Cette interface permet de définir des tâches à exécuter au démarrage et à l'arrêt de l'application.

Le service EmailReminderService utilise un objet Timer pour planifier la tâche d'envoi d'e-mails. Le Timer est configuré pour s'exécuter toutes les minutes, en appelant la méthode SendReminderEmails à chaque itération.

Configuration du planificateur de tâches

Pour utiliser le service EmailReminderService dans votre application .NET Core, vous devez le configurer dans le fichier Program.cs:

using Microsoft.Extensions.Hosting;

var builder = WebApplication.CreateBuilder(args);

// Ajouter le service EmailReminderService
builder.Services.AddHostedService();

var app = builder.Build();

// ...

Une fois configuré, le planificateur de tâches sera activé au démarrage de l'application. Le service EmailReminderService commencera à exécuter la tâche d'envoi d'e-mails à intervalles réguliers, dans ce cas, toutes les minutes.

Conclusion

Le planificateur de tâches de .NET Core est un outil puissant pour automatiser des tâches récurrentes dans vos applications. Cet exemple simple met en évidence la simplicité d'utilisation du IHostedService pour créer des planificateurs de tâches efficaces. N'hésitez pas à l'adapter à vos besoins et à explorer les nombreuses possibilités offertes par .NET Core pour gérer des tâches planifiées.

Related Post


Featured Posts