इस प्रोजेक्ट के बारे में

BullMQ एक उच्च-प्रदर्शन, Redis-आधारित वितरित संदेश कतार और बैच प्रोसेसिंग लाइब्रेरी है जो Node.js, Python, .NET, Elixir, Rust और PHP के लिए डिज़ाइन की गई है। यह ठोस स्थिरता और परमाणुता के लिए बनाई गई है, जो इसे उत्पादन वातावरण के लिए उपयुक्त बनाती है जहाँ विश्वसनीय बैकग्राउंड जॉब प्रोसेसिंग की आवश्यकता होती है। लाइब्रेरी कई भाषाओं में मूल कार्यान्वयन प्रदान करती है, प्रत्येक एक अलग पैकेज के रूप में उपलब्ध है: Node.js/Bun के लिए `npm install bullmq`, Python के लिए `pip install bullmq`, Rust के लिए `cargo add bullmq-official`, Elixir के लिए `{:bullmq, "~> x.x"}`, .NET के लिए `dotnet add package BullMQ`, और एक समर्पित PHP पैकेज। अन्य प्लेटफार्मों के लिए, एक BullMQ प्रॉक्सी उपलब्ध है। मुख्य विशेषताओं में FlowProducer के माध्यम से पैरेंट-चाइल्ड जॉब निर्भरताएँ शामिल हैं, जो विभिन्न कतारों में रूट, चाइल्ड और ग्रैंडचाइल्ड जॉब के साथ जटिल जॉब ट्री बनाने की अनुमति देती हैं। डीडुप्लीकेशन डिबाउंसिंग और थ्रॉटलिंग दोनों पैटर्न का समर्थन करता है। जॉब को प्राथमिकता दी जा सकती है, विलंबित किया जा सकता है, शेड्यूल पर दोहराया जा सकता है, और कॉन्फ़िगर करने योग्य समवर्तीता के साथ संसाधित किया जा सकता है। दर सीमा कतार स्तर पर उपलब्ध है, और कतारों को रोका और फिर से शुरू किया जा सकता है। परमाणु संचालन डेटा स्थिरता सुनिश्चित करते हैं, और सभी जॉब Redis में संग्रहीत होते हैं। BullMQ पूर्ण और विफल जैसे जॉब जीवनचक्र घटनाओं की निगरानी के लिए वैश्विक घटनाओं का भी समर्थन करता है। अलग-अलग जॉब निष्पादन के लिए एक सैंडबॉक्स्ड वर्कर विकल्प उपलब्ध है। परियोजना में बुल, क्यू, बी और एजेंडा जैसे अन्य जॉब कतार समाधानों के खिलाफ एक सुविधा तुलना तालिका शामिल है, जो BullMQ की व्यापक सुविधा सेट को उजागर करती है। Taskforce.sh के माध्यम से एक आधिकारिक फ्रंटएंड उपलब्ध है, जो कतारों का निरीक्षण करने, जॉब खोजने और पुनः प्रयास करने, विलंबित जॉब को बढ़ावा देने, और मेट्रिक्स और आँकड़े देखने के लिए एक पेशेवर डैशबोर्ड प्रदान करता है। परियोजना सक्रिय सामुदायिक योगदान के साथ ओपन-सोर्स है, और प्रायोजकों में DragonflyDB शामिल है, जो BullMQ कार्यभार के लिए अनुकूलित एक Redis-संगत ड्रॉप-इन प्रतिस्थापन है। BullMQ का उपयोग करने वाले उल्लेखनीय संगठनों में Microsoft (Lage के माध्यम से), Vendure, Datawrapper, NestJS, Langfuse, Curri, Novu, NocoDB और Infisical शामिल हैं। परियोजना स्वचालित संस्करण और प्रकाशन के लिए सिमेंटिक-रिलीज़ का पालन करती है।