شرح صفوف ومحتوى الفقرة
بدلاً من إدارة عشرات الأسطر المنفصلة في جدول 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();