Skip to content
Learni
View all tutorials
DevOps

Comment automatiser des tâches avec Cron en 2026

14 minINTERMEDIATE

Introduction

Les tâches Cron permettent d'exécuter automatiquement des scripts à intervalles définis, essentielles pour les sauvegardes, les rapports ou la maintenance. En 2026, leur intégration avec Node.js offre une flexibilité accrue pour les applications modernes. Ce tutoriel intermédiaire vous guide pas à pas pour créer des jobs fiables, du crontab système jusqu'à l'implémentation avec node-cron. Vous apprendrez à gérer les erreurs, les logs et la scalabilité. Une bonne maîtrise évite les pannes silencieuses et optimise les ressources serveur.

Prérequis

  • Node.js 20+
  • Connaissances de base en TypeScript
  • Accès à un serveur Linux ou WSL
  • npm ou pnpm installé

Installation de node-cron

terminal
npm install node-cron
npm install --save-dev @types/node-cron

Cette commande installe le package node-cron pour gérer les tâches planifiées directement dans Node.js, avec les types TypeScript pour un développement sécurisé.

Configuration du job Cron basique

src/jobs/backup.ts
import cron from 'node-cron';

cron.schedule('0 2 * * *', () => {
  console.log('Exécution de la sauvegarde quotidienne à 2h');
  // Logique de backup ici
}, {
  scheduled: true,
  timezone: "Europe/Paris"
});

Ce code planifie une tâche tous les jours à 2h du matin avec le fuseau horaire français. Le flag scheduled active le job immédiatement.

Ajout de gestion d'erreurs

src/jobs/backup.ts
import cron from 'node-cron';

cron.schedule('0 2 * * *', async () => {
  try {
    await performBackup();
    console.log('Sauvegarde réussie');
  } catch (error) {
    console.error('Erreur backup:', error);
    // Envoyer alerte Slack ou email
  }
}, { timezone: "Europe/Paris" });

L'utilisation de try/catch empêche les crashes silencieux et permet d'intégrer des notifications en cas d'échec.

Création d'un fichier de configuration

src/config/cron.ts
export const cronConfig = {
  backup: '0 2 * * *',
  report: '0 9 * * 1',
  cleanup: '0 4 * * 0'
} as const;

Centraliser les expressions cron dans un fichier de config facilite la maintenance et évite les erreurs de duplication.

Job de nettoyage avancé

src/jobs/cleanup.ts
import cron from 'node-cron';
import { cleanupOldFiles } from '../utils/files';

cron.schedule(cronConfig.cleanup, async () => {
  const deleted = await cleanupOldFiles(30);
  console.log(`${deleted} fichiers supprimés`);
}, { timezone: "Europe/Paris" });

Ce job hebdomadaire supprime les fichiers de plus de 30 jours, illustrant une tâche de maintenance concrète et réutilisable.

Bonnes pratiques

  • Toujours définir un timezone explicite
  • Utiliser des logs structurés avec des identifiants de job
  • Limiter la durée d'exécution des tâches
  • Tester les jobs en environnement de staging
  • Surveiller avec des outils comme PM2 ou Datadog

Erreurs courantes à éviter

  • Oublier la gestion des erreurs async (jobs silencieux)
  • Utiliser des expressions cron invalides sans validation
  • Ne pas isoler les tâches longues qui bloquent l'event loop
  • Ignorer les permissions des fichiers exécutés par cron

Pour aller plus loin

Explorez les patterns avancés de scalabilité et monitoring dans nos formations Learni.