0Pricing
PHP Academy · درس

مفاهيم قوائم الانتظار وبرامج التشغيل

افهموا المعالجة غير المتزامنة واضبطوا برامج تشغيل قوائم الانتظار لقاعدة البيانات أو Redis

مفاهيم قوائم الانتظار وبرامج التشغيل درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.

ما هي Queues؟

تتيح لك Queues تأجيل المهام البطيئة أو التي تستهلك موارد كثيرة (مثل إرسال رسائل البريد الإلكتروني، وتغيير حجم الصور، واستدعاء واجهات API الخارجية) إلى عمال في الخلفية، مما يحافظ على سرعة استجابات HTTP.

بنية Queue

تدفع العملية الرئيسية (خادم الويب) المهام إلى Queue. ثم تسحب عمليات عامل منفصلة المهام وتنفذها بشكل غير متزامن.

برامج تشغيل Queue المتاحة

يدعم Laravel عدة أنظمة خلفية لـ Queue:

  • database — تُخزّن المهام في قاعدة البيانات (مناسب للبدء)
  • redis — سريع وجاهز للإنتاج
  • sqs — خدمة Simple Queue Service من AWS
  • beanstalkd — سريع وخفيف
  • sync — يُنفّذ المهام فورًا (للتطوير المحلي)

تهيئة برنامج تشغيل Queue

حدّد برنامج التشغيل في .env.

# .env
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PORT=6379

إعداد برنامج database

إذا كنت تستخدم برنامج تشغيل قاعدة البيانات، فأنشئ جدول jobs.

$ php artisan queue:table
$ php artisan migrate

بدء عامل Queue

تسحب عملية العامل المهام من Queue وتنفذها.

$ php artisan queue:work
# Or specify connection and queue:
$ php artisan queue:work redis --queue=emails,default

queue:listen أم queue:work؟

يحمّل queue:work التطبيق مرة واحدة ويعالج المهام في الذاكرة — وهو أسرع، لكنه يتطلب إعادة تشغيل العامل بعد تغيير الشيفرة. أما queue:listen فيعيد تحميل التطبيق لكل مهمة — وهو أسهل أثناء التطوير.

المهام الفاشلة

عندما تفشل مهمة بعد جميع محاولات إعادة التنفيذ، تُخزّن في جدول failed_jobs. اعرضها وأعد محاولة تنفيذها باستخدام Artisan.

$ php artisan queue:failed
$ php artisan queue:retry all
$ php artisan queue:flush

أولويات Queue

عرّف عدة Queues مسماة وعيّن الأولويات عند بدء العامل.

$ php artisan queue:work --queue=high,default,low
# Worker checks high first, then default, then low

لوحة Horizon

بالنسبة إلى Queues التي تستخدم Redis، يوفّر Laravel Horizon لوحة جميلة في الوقت الفعلي تعرض معدل المعالجة، والمهام الفاشلة، وإحصاءات العمال.

اختيار برنامج التشغيل

استخدم sync محليًا، وdatabase للمشروعات الصغيرة، وredis عند الحاجة إلى التوسع في بيئة الإنتاج. تجنّب SQS إلا إذا كنت تعمل أصلًا على AWS وتحتاج إلى توسّع غير محدود.

الملخص

تنقل Queues العمل البطيء إلى عمال في الخلفية. هيّئ برنامج التشغيل في .env، وأنشئ المهام باستخدام Artisan، وابدأ العمال باستخدام queue:work. راقب المهام الفاشلة في جدول failed_jobs.

تحقق سريع

أي برنامج تشغيل لـ Queue ينفّذ المهام فورًا في العملية نفسها؟

الأسئلة الشائعة

هل درس «مفاهيم قوائم الانتظار وبرامج التشغيل» مجاني؟

نعم — نص درس «مفاهيم قوائم الانتظار وبرامج التشغيل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.

ماذا ستتعلم في «مفاهيم قوائم الانتظار وبرامج التشغيل»؟

افهموا المعالجة غير المتزامنة واضبطوا برامج تشغيل قوائم الانتظار لقاعدة البيانات أو Redis تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟

لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «مفاهيم قوائم الانتظار وبرامج التشغيل»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟

نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مفاهيم قوائم الانتظار وبرامج التشغيل
  2. إنشاء المهام وإرسالها
  3. إعادة محاولة المهام وتأخيرها وتسلسلها
  4. مراقبة قوائم الانتظار باستخدام Laravel Horizon
← العودة إلى PHP Academy