La mise en file d’attente des tâches en toute simplicité avec Node.js et BullMQ

En tant que concepteur de sites web, il est important que vos applications agissent aussi rapidement que possible. Vous devez construire des applications internet qui répondent aux demandes dans les délais les plus rapides possibles.

L’une des nombreuses innovations qui peuvent vous aider est la mise en file d’attente des tâches.

Alors, qu’est-ce que la mise en file d’attente des tâches, ainsi que la façon dont vous pouvez l’utiliser pour maximiser une application Node.js ?

Qu’est-ce que la mise en file d’attente des tâches ?

La mise en file d’attente des messages est un moyen de communication asynchrone entre deux applications ou solutions, généralement désignées sous le nom de producteur ainsi que consommateur. C’est un concept populaire utilisé dans les styles serverless ainsi que microservice.

Le principe de tâche ou tâche mise en file d’attente exploite la mise en file d’attente des messages pour améliorer les performances des applications. Elle abstrait les complexités de la manipulation des messages et permet de spécifier des fonctionnalités pour prendre en charge des travaux ou des tâches de manière asynchrone en utilisant une ligne, abaissant ainsi le prix de l’utilisation de la mémoire dans certains composants d’une application.

L’exemple le plus typique d’application logicielle de ligne de messages est RabbitMQ. Les outils de ligne de tâches consistent en Celery ainsi qu’en Bull. Vous pouvez également configurer RabbitMQ pour qu’il fonctionne comme une file d’attente de tâches. Continuez à lire pour en savoir plus sur la mise en file d’attente des tâches dans Node.js en utilisant Bull.

Voir aussi :  Comment implémenter des niveaux de jeu dans Python's Arcade

Qu’est-ce que BullMQ ?

BullMQ (Bull.js) est une bibliothèque Node.js utilisée pour la mise en œuvre de lignes dans les applications Node. Bull est un système basé sur Redis (vous pourriez être plus conscient de Redis comme un dispositif pour le stockage rapide de données) ainsi que c’est une alternative rapide et fiable à penser pour la mise en file d’attente des tâches dans Node.js.

Vous pouvez utiliser Bull pour de nombreuses tâches telles que la mise en œuvre de travaux différés, de travaux arrangés, de travaux répétables, de files d’attente de priorité supérieure, et bien plus encore.

Alors, comment exactement utiliser Bull et aussi Redis pour exécuter des tâches Node.js de manière asynchrone ?

Comment configurer Bull et Redis pour la mise en file d’attente des tâches dans Node.js ?

Pour vous lancer dans la mise en file d’attente des tâches dans Node.js avec Bull, vous avez besoin de Node.js et de Redis configurés sur votre machine. Vous pouvez vous conformer à la Guide de Redis labs pour installer Redis si vous ne l’avez pas installé.

L’étape initiale pour appliquer Bull est de l’ajouter aux reliances de votre projet en exécutant npm set up bull ou yarn add bull dans l’incurable à l’intérieur du dossier de votre projet. Il existe plusieurs façons d’initialiser une ligne dans Bull, comme indiqué ci-dessous :

Toutes ces méthodes utilisent très peu de configuration pour Bull dans Node.js. L’objet options prend en charge plusieurs foyers et vous pouvez les découvrir dans le fichier section des alternatives de file d’attente de la documentation de Bull.

Voir aussi :  11 bibliothèques Python essentielles pour l'IA et le ML

Mise en œuvre d’une file d’attente de tâches de courrier électronique en utilisant BullMQ.

Pour exécuter une ligne d’envoi de courriels, vous pouvez spécifier votre fonction de producteur qui inclut les courriels dans la file d’attente des courriels, ainsi qu’une fonction client qui s’occupe de l’envoi des courriels.

Tout d’abord, vous pourriez initialiser votre ligne dans un cours en utilisant une URL Redis et quelques options de ligne comme vu ci-dessous.

Maintenant que vous avez initialisé une file d’attente, vous pouvez définir votre fonction de producteur (en utilisant les options de Bull. add() ) comme une approche de la fonction EmailQueue pour inclure des courriels dans la file d’attente des tâches. Le bloc de code conforme en fait la démonstration :

La fonction de producteur est prête, et vous pourriez actuellement définir une fonction de consommateur (en utilisant la classe de Bull. process() ) pour raffiner tous les travaux de courrier électronique dans la ligne up– c’est-à-dire appeler la fonction pour envoyer un courriel. Vous devez spécifier cette fonction consommateur dans le constructeur du cours.

Un travail pourrait également avoir des options pour spécifier son comportement dans le line up ou juste comment la fonctionnalité de consommateur le gère. Vous pouvez en savoir encore plus à ce sujet dans la section section des options du travail de la paperasse de Bull.

Le site emailJob argument est un élément qui contient les bâtiments de la tâche à traiter par la file d’attente. Il se compose en outre des données primaires nécessaires à la création de l’e-mail. Pour une compréhension très facile, l’argument sendEmail() serait similaire à cet exemple :

Voir aussi :  Comment trouver la somme d'une série géométrique en utilisant plusieurs langues

Maintenant que vous avez à la fois les fonctions de producteur et aussi de client définies et aussi prêtes à être utilisées, vous pouvez actuellement appeler votre fonction de producteur n’importe où dans votre application pour ajouter un email à la ligne pour le traitement.

Un exemple de contrôleur ressemblerait certainement à ceci :

Votre queueHandler. js doit actuellement être conforme à :

Lorsque vous appliquez ceci dans une API REST Node.js, vous remarquerez certainement une réduction du temps d’action du point de terminaison d’inscription, ainsi que des temps de distribution des e-mails beaucoup plus rapides, contrairement au choix.

Task lines up vous a également permis de gérer les erreurs d’inscription et d’e-mail individuellement.

Optimisation des applications à l’aide des files d’attente de tâches

Les files d’attente de messages et aussi de tâches sont un excellent moyen d’améliorer l’efficacité générale des applications. Ils sont en outre extrêmement économiques et vous pouvez également les utiliser dans autant de composants d’une application que vous le souhaitez.

Bien que ce tutoriel ait utilisé les e-mails comme exemple de gestion de tâches consommatrices de mémoire avec des files d’attente, il existe de nombreuses autres situations où vous pouvez appliquer les mêmes concepts. Il s’agit notamment d’opérations de lecture/écriture lourdes, de la fourniture de photos ou de documents de haute qualité, et aussi de l’envoi de notifications de masse.

Abonnez-vous à notre e-newsletter

Cliquez pour évaluer cet article !
[Total: Moyenne : ]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *