schedule:run
تنفيذ الجدول الزمني للمهام schedule:run
schedule:run يفحص كل المهام المجدولة بالكود ويشغّل ما حان وقته منها — أمر واحد فقط يحتاج تسجيله بـ cron الخادم بدل عشرات إدخالات cron المنفصلة.
بدل كتابة إدخال cron لكل مهمة دورية (نسخة احتياطية، تنظيف جدول، إرسال تقرير)، تُعرَّف كل المهام بكود PHP داخل routes/console.php، ويكفي إدخال cron واحد يستدعي schedule:run كل دقيقة — Laravel نفسه يقرّر أيّ مهمة حان وقتها فعليًا وينفّذها.
الصياغة
php artisan schedule:run
📄 مثال
# داخل routes/console.php
use Illuminate\Support\Facades\Schedule;
Schedule::command('emails:send')->daily();
Schedule::call(fn () => Cache::flush())->weekly();
# إدخال cron واحد فقط على الخادم
* * * * * cd /path-to-project && php artisan schedule:run >> /dev/null 2>&1
# تشغيل محلي أثناء التطوير (بلا حاجة لـ cron)
php artisan schedule:work
# معاينة كل المهام المجدولة ووقت تنفيذها القادم
php artisan schedule:listأهم الخيارات
| الخيار | الوظيفة |
|---|---|
| schedule:work | يشغّل الجدولة محليًا بالمقدّمة كل دقيقة، بديل cron أثناء التطوير |
| schedule:list | يعرض كل المهام المجدولة ووقت تنفيذها القادم |
| schedule:interrupt | يقاطع تنفيذ schedule:run الجاري، مفيد عند النشر لتفادي تشغيل كود قديم |
💡 نصائح عملية
- إدخال cron الخاص بـ schedule:run يجب أن يعمل كل دقيقة بالضبط — Laravel هو من يقرّر داخليًا أيّ مهمة تُنفَّذ فعليًا
⚠️ أخطاء شائعة
- نسيان إضافة إدخال cron على الخادم أصلًا فتبقى كل المهام المجدولة بالكود بلا أي تنفيذ فعلي
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار LARAVEL الكامل بالعربي.