Saud | سعود الانصاري
Saud | سعود الانصاري

@Alansaricodez

11 تغريدة 1 قراءة Mar 03, 2023
اكتشفت مؤخرًا قوة queue system في Laravel
إنها تجعل معالجة المهام في الخلفية أمرًا في غاية السهولة وتعمل تطبيقات الويب الخاصة بي بشكل أكثر سلاسة من أي وقت مضى
تتيح لك Laravel إنشاء وظائف jobs في قائمة الانتظار بسهولة والتي يمكن معالجتها في الخلفية
من خلال نقل المهام التي تستغرق وقتًا طويلاً إلى قائمة انتظار، يمكن للتطبيق الخاص بك الاستجابة لطلبات الويب بسرعة فائقة وتوفير تجربة مستخدم أفضل لعملائك
هذا يعني أن خادم الويب الخاص بي يمكنه التعامل مع الطلبات الأخرى دون التعثر، مما يؤدي إلى تحسن ملحوظ في الأداء
ولكن الأمر لا يتعلق فقط بالأداء، فإن نظام قائمة الانتظار في Laravel يحتوي أيضًا على دعم مدمج لإعادة المحاولة وإشعارات الفشل
هذا يعني أنه في حالة فشل إحدى الوظائف، يمكنني بسهولة إعدادها لإعادة المحاولة تلقائيًا أو حتى تلقي إخطاري حتى أتمكن من اتخاذ إجراء
أنا متحمس لتجربة العمل مع نظام queues وجميع الميزات الأخرى التي يقدمها
إنه يجعل وظيفتي كمطور أسهل كثيرًا وتكون النتائج النهائية أكثر صقلًا
هل تريد شرح لكيفية انشاء Job يعمل في الخلفية؟
فيما يلي مثال لكيفية استخدام نظام قائمة الانتظار في Laravel لمعالجة مهمة تستغرق وقتًا طويلاً بشكل غير متزامن
في هذا المثال ، سننشئ Job تسمى SendWelcomeEmail ترسل بريدًا إلكترونيًا ترحيبيًا إلى مستخدم جديد
1⃣ أولاً، تحتاج إلى إنشاء فئة عمل عن طريق تشغيل الأمر
php artisan make:job SendWelcomeEmail
سيؤدي هذا إلى إنشاء ملف جديد في App/Jobs
2⃣ بعد ذلك، يمكنك إرسال الوظيفة في وحدة تحكم أو أي جزء آخر من التطبيق الخاص بك حيث تريد إرسال البريد الإلكتروني الترحيبي باستخدام الامر
dispatch(new SendWelcomeEmail($user));
3⃣ لمعالجة المهام في قائمة الانتظار، ستحتاج إلى تشغيل عامل قائمة انتظار في الخلفية
يمكنك القيام بذلك عن طريق تشغيل الأمر
php artisan queue: work
4⃣ لمراقبة تقدم مهامك في قائمة الانتظار، يمكنك استخدام Laravel Horizon، الذي يوفر إحصائيات تفصيلية ومراقبة لقوائم الانتظار الخاصة بك
5⃣ لتعديل عمليات إعادة المحاولة وإشعارات الفشل، يمكنك تحرير تكوين اتصال قائمة الانتظار في ملف
config / queue.php
الخاص بك وأيضًا يمكنك التقاط الاستثناءات في طريقة التعامل مع الوظيفة ومعالجتها وفقًا لذلك

جاري تحميل الاقتراحات...