À propos du projet

BullMQ est une bibliothèque haute performance de file de messages distribuée et de traitement par lots basée sur Redis, conçue pour Node.js, Python, .NET, Elixir, Rust et PHP. Elle est construite pour une stabilité et une atomicité robustes, ce qui la rend adaptée aux environnements de production nécessitant un traitement fiable des tâches en arrière-plan. La bibliothèque fournit des implémentations natives dans plusieurs langages, chacune disponible en tant que package séparé : `npm install bullmq` pour Node.js/Bun, `pip install bullmq` pour Python, `cargo add bullmq-official` pour Rust, `{:bullmq, "~> x.x"}` pour Elixir, `dotnet add package BullMQ` pour .NET, et un package PHP dédié. Pour d'autres plateformes, un proxy BullMQ est disponible. Les fonctionnalités principales incluent les dépendances de tâches parent-enfant via FlowProducer, ce qui permet de construire des arbres de tâches complexes avec des tâches racine, enfant et petit-enfant dans différentes files. La déduplication prend en charge les modèles de debouncing et de throttling. Les tâches peuvent être priorisées, différées, répétées selon des calendriers, et traitées avec une concurrence configurable. La limitation de débit est disponible au niveau de la file, et les files peuvent être mises en pause et reprises. Les opérations atomiques garantissent la cohérence des données, et toutes les tâches sont persistées dans Redis. BullMQ prend également en charge des événements globaux pour surveiller le cycle de vie des tâches, tels que les événements terminés et échoués. Une option de worker sandboxé est disponible pour une exécution isolée des tâches. Le projet inclut un tableau comparatif des fonctionnalités par rapport à d'autres solutions de file de tâches comme Bull, Kue, Bee et Agenda, mettant en évidence l'ensemble plus large de fonctionnalités de BullMQ. Une interface frontale officielle est disponible via Taskforce.sh, fournissant un tableau de bord professionnel pour inspecter les files, rechercher et relancer les tâches, promouvoir les tâches différées, et afficher des métriques et statistiques. Le projet est open-source avec des contributions actives de la communauté, et les sponsors incluent DragonflyDB, un remplacement compatible Redis optimisé pour les charges de travail BullMQ. Les organisations notables utilisant BullMQ incluent Microsoft (via Lage), Vendure, Datawrapper, NestJS, Langfuse, Curri, Novu, NocoDB et Infisical. Le projet suit semantic-release pour le versionnage et la publication automatisés.