BullMQ Queues

نظام الـ jobs الخلفي.

BullMQ يدير كل الـ jobs الخلفية. عندنا 4 queues، كل واحدة لها processor وحياة مستقلة. مراقبتها live في /automation/queues.

الـ Queueالـ ProcessorConcurrencyالغرض
workflow-runsWorkflowRunsProcessor5تنفيذ workflows الأتمتة (Day 5+).
scheduled-tasksScheduledTasksProcessor3مهام مجدولة من الوكلاء عبر schedule_task.
agent-executionAgentWorker5تنفيذ مهام راشد (HermesTask).
hermes-mainقناة رئيسية للأوامر التنفيذية (متاحة للتوسّع).

إعدادات افتراضية

  • Attempts: 3 (مع exponential backoff)
  • Backoff delay: 2000 ms
  • removeOnComplete: آخر 100
  • removeOnFail: آخر 50
Idempotency
الـ workflow-runs processor فيه idempotency guard: لو الـ run في حالة terminal (SUCCESS/FAILED/CANCELLED) ووصل retry، يتجاهله. يمنع الـ status flapping عند الأخطاء الـ deterministic.

Redis

نفس Redis instance يحمل: BullMQ queues + cache (TTL 300s افتراضي) + sessions. الاتصال: redis://localhost:6379. للمراقبة العميقة:redis-cli MONITOR.

الـ Jobs المؤجّلة (Delayed)

BullMQ يدعم delay على الـ job. WaitAction للمدد >60 ثانية يستفيد منها — لا يبلكي worker مدّة طويلة، بدلاً من ذلك يضيف job جديد resume بـ delay.