node-cron — Planificateur de tâches pour Node.js

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-cron ?

node-cron est une bibliothèque légère pour Node.js qui permet d'exécuter des fonctions JavaScript selon un planning, en utilisant la syntaxe des expressions cron des systèmes UNIX. Elle est idéale pour automatiser des tâches routinières : nettoyage du cache, envoi d'emails, sauvegarde de bases de données ou surveillance de serveur.

Pourquoi un planificateur de tâches ?

Dans les applications web, il est souvent nécessaire d'exécuter du code à un moment précis, et pas seulement à la demande de l'utilisateur. Au lieu d'utiliser des services externes (comme cron sur le serveur), node-cron fonctionne directement à l'intérieur de votre processus Node.js. Cela simplifie le déploiement, ne nécessite pas de configuration du planificateur système et est parfait pour les applications conteneurisées (Docker, Kubernetes).

Installation

L'installation via npm se fait avec une seule commande :

npm install node-cron

Après l'installation, la bibliothèque est prête à être utilisée — aucune dépendance supplémentaire n'est requise.

Fonctionnalités principales

  • Planification flexible — prise en charge des motifs cron standards (minutes, heures, jours, mois, jours de la semaine).
  • Démarrage et arrêt — chaque tâche peut être démarrée ou arrêtée à la demande.
  • Gestion des erreurs — possibilité de définir un callback pour journaliser les erreurs sans planter l'application.
  • Syntaxe simple — seulement deux méthodes : schedule et validate.

Exemple de code en JavaScript (Node.js)

Créons une tâche qui affiche l'heure actuelle dans la console chaque minute :

const cron = require('node-cron');

// La tâche s'exécute chaque minute : '* * * * *'
cron.schedule('* * * * *', () => {
console.log('Tâche exécutée :', new Date().toLocaleString());
});

console.log('Planificateur démarré. Appuyez sur Ctrl+C pour quitter.');

Un exemple plus complexe — envoi d'un rapport chaque jour à 8 heures du matin :

const cron = require('node-cron');

cron.schedule('0 8 * * *', () => {
console.log('Envoi du rapport quotidien...');
// Ici, vous appelez la fonction d'envoi d'email
}, {
scheduled: true,
timezone: 'Europe/Moscow'
});

Vérification de la validité d'une expression cron :

const isValid = cron.validate('*/5 * * * *');
console.log(isValid); // true

Quand utiliser node-cron ?

  • Automatisation des sauvegardes — création d'un dump de la base de données chaque nuit.
  • Nettoyage périodique — suppression des sessions obsolètes ou des fichiers temporaires.
  • Surveillance — vérification de la disponibilité des services et envoi d'alertes.
  • Envois groupés — envoi d'emails planifiés (par exemple, des newsletters).
  • Mise à jour du cache — reconstruction du cache pendant les heures creuses.

La bibliothèque node-cron convient aux projets de toutes tailles — des scripts simples aux architectures de microservices. Elle ne nécessite pas de dépendances externes et fonctionne de manière stable même avec une longue durée de fonctionnement.

Recommendations