প্রকল্প সম্পর্কে

BullMQ হলো Node.js, Python, .NET, Elixir, Rust এবং PHP-এর জন্য ডিজাইন করা একটি উচ্চ-কার্যক্ষমতা সম্পন্ন, রিডিস-ভিত্তিক ডিস্ট্রিবিউটেড মেসেজ কোয়্যু এবং ব্যাচ প্রসেসিং লাইব্রেরি। এটি শক্তিশালী স্থিতিশীলতা এবং অ্যাটমিসিটির ওপর ভিত্তি করে তৈরি, যা নির্ভরযোগ্য ব্যাকগ্রাউন্ড জব প্রসেসিংয়ের জন্য প্রোডাকশন পরিবেশে উপযুক্ত। লাইব্রেরিটি একাধিক ভাষার জন্য নেটিভ ইমপ্লিমেন্টেশন প্রদান করে, যেখানে প্রতিটি আলাদা প্যাকেজে পাওয়া যায়: নোড.জেস/বানের জন্য `npm install bullmq`, পাইথনের জন্য `pip install bullmq`, রাষ্টের জন্য `cargo add bullmq-official`, এক্সলির জন্য `{:bullmq, "~> x.x"}`, .NET-এর জন্য `dotnet add package BullMQ` এবং একটি নির্দিষ্ট পিএইচপি প্যাকেজ। অন্যান্য প্ল্যাটফর্মের জন্য BullMQ প্রক্সি উপলব্ধ রয়েছে। কোর ফিচারগুলোর মধ্যে FlowProducer-এর মাধ্যমে প্যারেন্ট-চাইল্ড জব ডিপেন্ডেন্সি রয়েছে, যা বিভিন্ন কোয়্যুতে রুট, চাইল্ড এবং গ্র্যান্ডচাইল্ড জব সহ জটিল জব ট্রি তৈরি করতে সক্ষম। ডিডিউপ্লিকেশন ডিবাউন্সিং এবং থ্রটলিং প্যাটার্ন সমর্থন করে। জবগুলোকে প্রায়োরিটাইজ করা, ডিলে করা, নির্দিষ্ট সময়সূচীতে পুনরাবৃত্তি করা এবং কনফিগারেবল কনকারেন্সি দিয়ে প্রসেস করা যায়। কোয়্যু লেভেলে রেট লিমিটিং এবং কোয়্যু পজ বা রিজিউম করার সুবিধা রয়েছে। অ্যাটমিক অপারেশন ডেটা সামঞ্জস্য নিশ্চিত করে এবং সকল জব রিডিসে সংরক্ষিত হয়। BullMQ জব লাইফসাইকেল ইভেন্ট (যেমন সম্পন্ন বা ব্যর্থ) মনিটর করার জন্য গ্লোবাল ইভেন্ট সমর্থন করে। বিচ্ছিন্ন জব এক্সিকিউশনের জন্য স্যান্ডবক্সড ওয়ার্কার অপশনও আছে। Bull, Kue, Bee এবং Agenda-এর মতো অন্যান্য জব কোয়্যু সলিউশনের সাথে এর বৈশিষ্ট্য তুলনা করে BullMQ-এর বিস্তৃত ফিচার সেট তুলে ধরা হয়েছে। Taskforce.sh-এর মাধ্যমে একটি অফিশিয়াল ফ্রন্টএন্ড উপলব্ধ, যা কোয়্যু পরীক্ষা, জব অনুসন্ধান ও রিট্রাই, ডিলেড জব প্রমোট এবং মেট্রিক্স দেখার জন্য একটি প্রফেশনাল ড্যাশবোর্ড প্রদান করে। প্রজেক্টটি ওপেন-সোর্স এবং সক্রিয় কমিউনিটি অবদান রাখছে; DragonflyDB-এর মতো স্পন্সররা রিডিস-কম্প্যাটিবল ড্রপ-ইন রিপ্লেসমেন্ট হিসেবে BullMQ ওয়ার্কলোডের জন্য অপ্টিমাইজড সমাধান সরবরাহ করছে। Microsoft (Lage-এর মাধ্যমে), Vendure, Datawrapper, NestJS, Langfuse, Curri, Novu, NocoDB এবং Infisical-এর মতো উল্লেখযোগ্য সংস্থাগুলো BullMQ ব্যবহার করছে। প্রজেক্টটি স্বয়ংক্রিয় ভার্সনিং এবং পাবলিশিংয়ের জন্য semantic-release অনুসরণ করে।