نظام طوابير Laravel واستخدام Supervisor في الإنتاج
يوليو 1, 2025🚀 نظام Queue & Jobs في Laravel
هناخدك خطوة خطوة من أول إنشاء الجداول لحد ما تشغّل الطوابير في Production عن طريق Supervisor.
الخطوة 1: إنشاء جداول الطوابير
اكتب الأوامر دي:
php artisan queue:table
php artisan queue:failed-table
php artisan queue:batches-table
php artisan migrate
الخطوة 2: تراقب Jobs اللي فشلت
اكتب:
php artisan queue:failed
هيطلعلك جدول فيه ID، الاتصال، الرسالة، والتاريخ.
الخطوة 3: إعادة تشغيل Jobs الفاشلة
php artisan queue:retry 5 # لإعادة تشغيل Job برقم معين
php artisan queue:retry all # كل الـfailed jobs
الخطوة 4: مسح الـ failed jobs
php artisan queue:flush
الخطوة 5: حذف الـ failed jobs القديمة
php artisan queue:prune-failed # أقدم من 24 ساعة
php artisan queue:prune --hours=48 # أقدم من 48 ساعة
الخطوة 6: إعداد retries مع backoff
مثال:
php artisan queue:work --tries=2
php artisan queue:work --queue=notification --tries=2 --backoff=1200
php artisan queue:work --queue=notification --tries=2 --backoff=10,20
الخطوة 7: Job batches
لو عندك شغل كتير زي إرسال 10,000 إيميل، الفكرة هنا إنك تجمعهم في batch وتتابعهم مع إمكانية إعادة محاولات، وعمل إشعار في الآخر.
الخطوة 8: تشغيل الطوابير في Production باستخدام Supervisor
Supervisor هي اللي بتشغل وتراقب الـ queue workers لو حصل crash. مثال config:
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/artisan queue:work --tries=3 --backoff=30 --timeout=120 --max-jobs=1000 --max-time=3600 --sleep=3 --reset=1
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/log/supervisor/laravel-worker.log
احفظه في /etc/supervisor/conf.d/laravel-worker.conf
وبعدين:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*
المدونة
إتقان التكرار غير المتزامن في JavaScript باستخدام Array.fromAsync()
يوليو 27, 2025
🔍 ما هي Array.fromAsync() بالضبط؟ Array.fromAsync() هي دالة static من كائن Array، شبيهة بالدالة Array.from()، لكن الفرق الجوهري هو أن Array.fromAs...
Laravel 12.19: استخدام Attributes لتنظيم الـ Query Builder
يوليو 07, 2025
Laravel 12.19: استخدام Attributes تنظّم Query Builder في Laravel 12.19، دلوقتي تقدر تستخدم Attribute اسمه #[UseEloquentBuilder] علشان تحدد Query Bu...
نظام طوابير Laravel واستخدام Supervisor في الإنتاج
يوليو 01, 2025
🚀 نظام Queue & Jobs في Laravel هناخدك خطوة خطوة من أول إنشاء الجداول لحد ما تشغّل الطوابير في Production عن طريق Supervisor. الخطوة 1: إنشاء...
تحديث Laravel 12.18.0
يونيو 17, 2025
تحديث Laravel 12.18.0 صدر نسخه Laravel 12.18.0 فيها شوية ميزات جامدة كده: توابع لتشفير وفك تشفير النصوص باستخدام Stringable ديركت في chain strings...
حلل مشروع Laravel بـ Introspect
يوليو 01, 2025
حلل كود Laravel باستخدام Laravel Introspect لو بتعمل Refactor كبير أو بتبني أدوات Dev، Laravel Introspect بيسمحلك تستعلم عن الكود: فيوز، مودلز، رو...
تذكير بالمهام مع Laravel وMongoDB
يونيو 30, 2025
📌 بناء تطبيق تذكير مهام المقال ده بيشرح إزاي نعمل تطبيق Laravel يستخدم MongoDB علشان يذكرك بالمهمات بتاعتك، مع تسجيل دخول، CRUD، وتذكير بالإيميلات...
