عن المشروع

يُعد BullMQ مكتبة عالية الأداء لطوابير الرسائل الموزعة ومعالجة الدفعات، تعتمد على Redis ومصممة خصيصاً لبيئات الإنتاج التي تتطلب معالجة موثوقة للمهام الخلفية. يدعم المشروع لغات برمجة متعددة بما في ذلك Node.js وPython و.NET وElixir وRust وPHP، حيث يتوفر لكل لغة حزمة منفصلة لتثبيت سهل (مثل `npm install bullmq` أو `pip install bullmq`). كما يتوفر "BullMQ Proxy" للمنصات الأخرى. تتميز المكتبة بمجموعة واسعة من الميزات الأساسية، منها: - إدارة التبعيات المعقدة عبر `FlowProducer` الذي يسمح ببناء أشجار مهام جذرية وفرعية وحفيدة عبر طوابير مختلفة. - دعم ازدواجية البيانات (Deduplication) بأنماط التأخير (Debouncing) والحد من السرعة (Throttling). - إمكانية تحديد أولويات المهام، وتأخيرها، وتكرارها حسب الجداول الزمنية، مع ضبط مستوى التزامن. - حدود سرعة على مستوى الطابور، وإمكانية الإيقاف المؤقت وإعادة التشغيل. - عمليات ذرية تضمن اتساق البيانات، مع حفظ جميع المهام في Redis. يدعم BullMQ مراقبة دورة حياة المهام عبر أحداث عالمية (Global Events) مثل اكتمال أو فشل المهام، ويوفر خيار "Sandboxed Worker" لتنفيذ معزول وآمن. يتضمن المشروع جدول مقارنة يبرز تفوقه على حلول أخرى مثل Bull وKue وBee وAgenda. يتوفر لوحة تحكم رسمية عبر Taskforce.sh تتيح فحص الطوابير، البحث والمحاولة مجددًا للمهام، ترقية المهام المؤجلة، وعرض المقاييس والإحصائيات. المشروع مفتوح المصدر ويتم إصداره تلقائيًا عبر semantic-release، بدعم من رعاة مثل DragonflyDB. تستخدم شركات كبرى مثل Microsoft (عبر Lage)، Vendure، Datawrapper، NestJS، Langfuse، Curri، Novu، NocoDB، وInfisical هذه التقنية.