منصوبے کے بارے میں

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 Proxy دستیاب ہے۔ بنیادی خصوصیات میں FlowProducer کے ذریعے والدین-بچے نوکری کے انحصار شامل ہیں، جو مختلف قطاروں میں جڑ، بچے، اور پوتے نوکریوں کے ساتھ پیچیدہ نوکری کے درخت بنانے کی اجازت دیتا ہے۔ ڈیڈپلیکیشن ڈیباؤنسنگ اور تھروٹلنگ دونوں پیٹرن کو سپورٹ کرتی ہے۔ نوکریوں کو ترجیح دی جا سکتی ہے، تاخیر کی جا سکتی ہے، شیڈول پر دہرایا جا سکتا ہے، اور قابل ترتیب ہم آہنگی کے ساتھ پروسیس کیا جا سکتا ہے۔ شرح کی حد قطار کی سطح پر دستیاب ہے، اور قطاروں کو روکا اور دوبارہ شروع کیا جا سکتا ہے۔ جوہری کارروائیاں ڈیٹا کی مستقل مزاجی کو یقینی بناتی ہیں، اور تمام نوکریاں Redis میں محفوظ رہتی ہیں۔ BullMQ مکمل اور ناکام جیسے نوکری کے لائف سائیکل واقعات کی نگرانی کے لیے عالمی واقعات بھی سپورٹ کرتا ہے۔ الگ تھلگ نوکری عملدرآمد کے لیے ایک سینڈ باکسڈ ورکر آپشن دستیاب ہے۔ پروجیکٹ میں دیگر نوکری قطار حل جیسے Bull، Kue، Bee، اور Agenda کے مقابلے میں ایک خصوصیت موازنہ جدول شامل ہے، جو BullMQ کی وسیع تر خصوصیت سیٹ کو نمایاں کرتا ہے۔ ایک سرکاری فرنٹ اینڈ Taskforce.sh کے ذریعے دستیاب ہے، جو قطاروں کا معائنہ کرنے، نوکریوں کو تلاش کرنے اور دوبارہ چلانے، تاخیر شدہ نوکریوں کو فروغ دینے، اور میٹرکس اور اعدادوشمار دیکھنے کے لیے ایک پیشہ ور ڈیش بورڈ فراہم کرتا ہے۔ پروجیکٹ اوپن سورس ہے جس میں فعال کمیونٹی تعاون ہے، اور اسپانسرز میں DragonflyDB شامل ہے، جو Redis کا ایک ہم آہنگ ڈراپ-ان متبادل ہے جو BullMQ کام کے بوجھ کے لیے بہتر بنایا گیا ہے۔ BullMQ استعمال کرنے والی قابل ذکر تنظیموں میں Microsoft (Lage کے ذریعے)، Vendure، Datawrapper، NestJS، Langfuse، Curri، Novu، NocoDB، اور Infisical شامل ہیں۔ پروجیکٹ خودکار ورژننگ اور اشاعت کے لیے semantic-release کی پیروی کرتا ہے۔