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-scheduleEnsuite, 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
scheduledJobsretourne 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.
Aussi dans la bibliothèque
Analyse HTML en C++ : aperçu des bibliothèques et exemples de code
Envoi de SMS en Java : aperçu des bibliothèques API et outils