تواصل معنا
Webflow Premium Partner إيهاب فايز
العودة لأدوات AI Coding
البيانات والتحليلات

Redis Queue (BullMQ)

بناء طوابير مهام موثوقة وعمال خلفية مع BullMQ بقوة Redis للمعالجة الموزعة.

Claude Code Cursor Copilot Windsurf

نظرة عامة

BullMQ هي مكتبة طوابير مهام قوية وغنية بالميزات لـ Node.js مبنية على Redis. توفر معالجة رسائل موثوقة مع دلالات تسليم مرة واحدة على الأقل مما يضمن عدم فقدان المهام حتى لو تعطل العمال. تدعم BullMQ المهام المؤجلة والمهام القابلة للتكرار (cron) وأولويات المهام وتحديد المعدل وتنسيق سير العمل المعقد مع علاقات المهام الأب-الابن.

تستخدم المكتبة Redis Streams وسكربتات Lua للعمليات الذرية مما يوفر ضمانات قوية حول ترتيب معالجة المهام واكتمالها. يمكن للعمال معالجة المهام بالتوازي مع حدود تزامن قابلة للتكوين ويتم إعادة محاولة المهام الفاشلة تلقائياً مع تراجع أسي. يوفر نظام الأحداث رؤية في الوقت الفعلي لتغييرات حالة الطابور وتقدم المهمة وصحة العامل.

BullMQ هي خليفة Bull وتوفر تحسينات كبيرة بما في ذلك دعم التدفقات وخطوط أنابيب المهام متعددة الخطوات والمعالجات المعزولة لتنفيذ المهام المعزول والأحداث العالمية. تتضمن المكتبة واجهة لوحة معلومات (Bull Board) لمراقبة الطوابير وتتكامل مع OpenTelemetry للتتبع الموزع.

لمن هذه الأداة؟

  • معالجة مهام إرسال البريد الإلكتروني في الخلفية
  • بناء خطوط معالجة الصور/الفيديو مع مجمعات عمال
  • جدولة مهام متكررة مثل توليد التقارير
  • تنفيذ تسليم webhook مع منطق إعادة المحاولة

التثبيت

إعداد Claude Code
npm install bullmq

الإعدادات

import { Queue, Worker } from "bullmq"

const emailQueue = new Queue("emails", {
  connection: { host: "localhost", port: 6379 },
})

await emailQueue.add("welcome-email", {
  to: "user@example.com",
  subject: "Welcome!",
})

const worker = new Worker("emails", async (job) => {
  await sendEmail(job.data)
}, { connection: { host: "localhost", port: 6379 }, concurrency: 5 })