1. مبتدئ

    كيف تعمل طوابير المهام (Queues) في Laravel وما فائدة واجهة ShouldQueue؟

    تفصل المهام الثقيلة عن مسار الـ HTTP، حيث يُسلسل الكائن في وسيط تخزين (Redis/DB) وترد الصفحة فوراً للمستخدم، بينما يعالج الـ Worker المهمة في الخلفية.

    اقرأ الشرح الكامل
  2. متوسط

    ما الفرق الجوهري بين أمر php artisan queue:work وأمر queue:listen؟

    queue:work يبقي إطار العمل محملاً في الذاكرة لأقصى أداء ويتطلب إعادة تشغيل عند تعديل الكود، بينما queue:listen يعيد تشغيل التطبيق مع كل مهمة وهو مخصص للتطوير.

    اقرأ الشرح الكامل
  3. متوسط

    كيف يتعامل Laravel مع المهام الفاشلة وما هو دور دالة failed() وسياسة Exponential Backoff؟

    يعيد محاولة تنفيذ المهمة بحسب $tries؛ وإذا استمر الفشل تُسجل في جدول failed_jobs وتستدعى دالة failed() لإجراء عمليات التنظيف أو التنبيه.

    اقرأ الشرح الكامل
  4. متقدم

    ما الفرق بين تسلسل المهام (Job Chaining) وحزم المهام (Job Batching) في Laravel؟

    الـ Chaining ينفذ المهام متسلسلة بالتتابع (إذا فشلت واحدة تتوقف البقية)، بينما الـ Batching ينفذ مجموعة مهام متوازية ويراقب نسبة إنجازها ويوفر callbacks للنجاح والفشل.

    اقرأ الشرح الكامل
  5. متقدم

    ما هي حزمة Laravel Horizon وما المزايا التي تقدمها لمراقبة طوابير Redis وإدارتها؟

    لوحة تحكم حية ومراقبة فورية لطوابير Redis، تدعم موازنة الحمل الذكية والتحجيم التلقائي لعدد العمال (Auto-scaling) ومراقبة أزمنة الانتظار والمهام الفاشلة.

    اقرأ الشرح الكامل
  6. متوسط

    كيف تعالج مشكلة تعليق المهام (Stuck Jobs) وما الفرق بين مهلة $timeout في المهمة و --timeout في العامل؟

    خاصية $timeout في المهمة تحدد الحد الأقصى لها وتتقدم على خيار --timeout العام للعامل؛ عند تجاوزها يُقتل العامل وتُحتسب محاولة فاشلة. والقاعدة الأهم أن retry_after في config/queue.php يجب أن يكون أكبر من أي مهلة تنفيذ ببضع ثوانٍ لتفادي تنفيذ المهمة مرتين.

    اقرأ الشرح الكامل
  7. مبتدئ

    كيف تصمم طوابير متعددة ذات أولويات مختلفة (High, Default, Low) في Laravel؟

    بتمرير أسماء الطوابير بالترتيب لأمر تشغيل العامل php artisan queue:work --queue=high,default,low؛ حيث يُفرغ الطابور الأول بالكامل قبل الانتقال للتالي.

    اقرأ الشرح الكامل
  8. متقدم

    كيف تمنع تكرار تنفيذ نفس المهمة في الطابور باستخدام واجهة ShouldBeUnique في Laravel؟

    بتطبيق واجهة ShouldBeUnique وتحديد دالة uniqueId()؛ حيث يحجز Laravel قفلاً في الكاش ويمنع إدخال أي مهمة مطابقة حتى تنتهي المهمة الحالية.

    اقرأ الشرح الكامل
  9. متقدم

    كيف تستخدم وسائط المهام (Job Middleware) لتنظيم استدعاء الـ APIs الخارجية ومعدل الاستهلاك؟

    بتعريف دالة middleware() داخل فئة الـ Job واستخدام أدوات مثل WithoutOverlapping أو ThrottlesExceptions لمنع تجميد الحسابات الخارجية.

    اقرأ الشرح الكامل
  10. متوسط

    كيف تعد أداة إدارة العمليات Supervisor على خوادم Linux لضمان استمرار عمل عمال Laravel؟

    بإنشاء ملف تكوين في /etc/supervisor/conf.d يحدد أمر queue:work، وعدد العمليات، والتشغيل التلقائي مع النظام وإعادة التشغيل الفوري عند الانهيار.

    اقرأ الشرح الكامل