node-schedule — planificateur de tâches pour TypeScript

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que node-schedule ?

node-schedule est une bibliothèque populaire pour planifier des tâches différées et récurrentes dans l'environnement Node.js. Elle est écrite en JavaScript, mais fonctionne parfaitement avec TypeScript grâce à la présence de définitions de types (DefinitelyTyped). La bibliothèque permet d'exécuter des fonctions à un moment précis, selon un calendrier (syntaxe de type cron) ou à des intervalles définis.

Pourquoi utiliser node-schedule ?

Dans les applications web modernes, il est souvent nécessaire d'effectuer des opérations en arrière-plan : vidage du cache, envoi d'emails en masse, sauvegarde de bases de données, mise à jour de données depuis des API externes ou génération de rapports. Node-schedule résout ce problème sans utiliser de services externes (par exemple, cron sous Linux) — tout fonctionne directement à l'intérieur de votre application TypeScript.

Installation

Installez la bibliothèque et les types via npm :

npm install node-schedulenpm install --save-dev @types/node-schedule

Ensuite, vous pouvez l'importer dans votre projet TypeScript :

import * as schedule from 'node-schedule';

Fonctionnalités principales

  • Planification par chaîne cron — vous définissez les minutes, heures, jours, mois et jours de la semaine.
  • Planification à une date spécifique — vous passez un objet Date ou une chaîne.
  • Répétition avec intervalle — par exemple, toutes les 10 minutes.
  • Annulation d'une tâche — vous pouvez annuler l'exécution planifiée.
  • Vérification des tâches actives — la méthode scheduledJobs retourne toutes les tâches actives.

Exemple de code en TypeScript

import * as schedule from 'node-schedule';

// Tâche qui s'exécutera chaque minute (à la 30e seconde)const job = schedule.scheduleJob('30 * * * * *', () => { console.log('Tâche exécutée à :', new Date().toLocaleString());});

// Tâche à une date spécifiqueconst date = new Date(Date.now() + 5000); // dans 5 secondesschedule.scheduleJob(date, () => { console.log('Tâche unique dans 5 secondes');});

// Répétition toutes les 10 secondesconst intervalJob = schedule.scheduleJob('*/10 * * * * *', () => { console.log('Toutes les 10 secondes');});

// Annulation de la tâche après 20 secondessetTimeout(() => { job.cancel(); console.log('Première tâche annulée');}, 20000);

// Vérification des tâches activesconsole.log('Tâches actives :', Object.keys(schedule.scheduledJobs));

Quand utiliser node-schedule

  • Lorsque vous devez exécuter des tâches planifiées dans une application Node.js sans cron externe.
  • Pour des tâches d'arrière-plan simples : nettoyage des logs, envoi d'emails, mise à jour du cache.
  • Lorsque vous avez besoin de la flexibilité de la syntaxe cron (par exemple, chaque premier jour du mois à 3h00).
  • Si vous ne voulez pas dépendre du système d'exploitation (multi-plateforme).

N'utilisez pas node-schedule pour les systèmes distribués à forte charge — dans ces cas, les files d'attente de tâches (Bull, RabbitMQ) ou les planificateurs cloud (AWS CloudWatch, GCP Cloud Scheduler) sont plus adaptés.

La bibliothèque est simple, légère et idéale pour les projets de petite et moyenne taille en TypeScript.

Recommendations