انتقل إلى محتوى الدرس

Automating Tasks with Scheduler جدولة المهام الدورية عبر Schedule

تسريع الأداء بالتخزين المؤقت Cache::remember وفصل منطق التطبيق عبر الأحداث والمستمعين وجدولة المهام الدورية آلياً.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

بدلاً من إدارة عشرات الأسطر المنفصلة في جدول cron على خادم Linux، يتيح مجدول المهام في Laravel تعريف جميع المهام الدورية بسلاسة داخل ملف routes/console.php. يكفي ضبط وظيفة cron واحدة على الخادم تشغل الأمر php artisan schedule:run كل دقيقة لتنفيذ المهام المستحقة في وقتها.

  • واجهة Schedule السلسة (Fluent Schedule Facade): عرّف الأوامر والمهام الدورية عبر Schedule::command أو Schedule::job داخل ملف routes/console.php.
  • دوال التكرار المعبرة (Expressive Frequencies): اربط دوال التوقيت الواضحة مثل hourly و daily و dailyAt لتحديد مواعيد التنفيذ.
  • منع تداخل المهام (Overlap Prevention): اربط دالة withoutOverlapping لضمان عدم بدء نسخة ثانية من المهمة إذا كانت النسخة السابقة لا تزال قيد التنفيذ.
PHP
// routes/console.php
use Illuminate\Support\Facades\Schedule;

Schedule::command('sanctum:prune-expired --hours=24')
    ->dailyAt('03:00')
    ->withoutOverlapping();