Bull Queue

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

Bull Queue pour TypeScript : Une puissante file d'attente de tâches

Bull Queue est une bibliothèque populaire pour gérer les files d'attente de tâches en Node.js, écrite en TypeScript. Elle est basée sur Redis et offre un moyen fiable de traiter des tâches en arrière-plan, telles que l'envoi d'emails, la génération de rapports, le traitement d'images et d'autres opérations qui ne doivent pas bloquer le thread principal de l'application. Bull Queue prend en charge les priorités, les délais, les tentatives et la surveillance via une interface web.

Pourquoi utiliser Bull Queue ?

Dans les applications web modernes, des tâches qui nécessitent du temps ou des ressources surviennent souvent. Les exécuter de manière synchrone peut entraîner un ralentissement de l'interface utilisateur, voire des timeouts. Bull Queue permet de déporter ces tâches en arrière-plan, en les traitant de manière asynchrone. Cela améliore les performances, la scalabilité et la résilience de l'application. Par exemple, lors de l'inscription d'un utilisateur, un email de bienvenue peut être envoyé immédiatement via la file d'attente, sans faire attendre l'utilisateur.

Installation

Pour installer Bull Queue, exécutez la commande :

npm install bull

Redis est également nécessaire. Assurez-vous que Redis est exécuté localement ou accessible à distance. Pour TypeScript, installez également les types :

npm install @types/bull

Fonctionnalités principales

  • Création de files d'attente : Créez facilement des files d'attente avec différents paramètres.
  • Ajout de tâches : Ajoutez des tâches avec des données et des options (priorité, délai, tentatives).
  • Gestionnaires : Définissez des fonctions pour traiter chaque tâche.
  • Tentatives : Répétitions automatiques en cas d'erreur avec une stratégie configurable.
  • Surveillance : Interface web intégrée pour visualiser l'état des files d'attente (via le package bull-board).

Exemple de code en TypeScript

import Queue from 'bull';

// Création de la file d'attenteconst emailQueue = new Queue('email', { redis: { host: 'localhost', port: 6379 }});

// Ajout d'une tâcheemailQueue.add({ to: 'user@example.com', subject: 'Bonjour !' }, { attempts: 3, delay: 5000 // 5 secondes de délai});

// Gestionnaire de tâcheemailQueue.process(async (job) => { console.log('Envoi d\'email :', job.data.to); // Code d'envoi d'email ici await sendEmail(job.data.to, job.data.subject);});

// Gestion de la complétionemailQueue.on('completed', (job) => { console.log('Tâche terminée :', job.id);});

emailQueue.on('failed', (job, err) => { console.error('Erreur :', err);});

Quand l'utiliser

Bull Queue est idéal pour :

  • L'envoi d'emails ou de SMS.
  • La génération de PDF ou de rapports.
  • Le traitement de fichiers téléchargés (images, vidéos).
  • L'exécution de tâches périodiques (tâches cron).
  • L'intégration avec des API externes avec limitation de débit.

Si votre projet en TypeScript nécessite un traitement fiable des tâches en arrière-plan, Bull Queue est un excellent choix grâce à sa simplicité, ses performances et son intégration avec Redis.

Recommendations