قائمة Cron Jobs 1. تشغيل Laravel Scheduler الغرض: يقوم Laravel Scheduler بتشغيل الأوامر المجدولة المحددة في app/Console/Kernel.php. في مشروعك، يتضمن ذلك تشغيل الأمر tokens:clean (من CleanOldTokens.php) لتنظيف الرموز القديمة من جدول personal_access_tokens. الأمر: bash * * * * * cd /home/username/bloxbouns && php artisan schedule:run >> /dev/null 2>&1 التوقيت: كل دقيقة (* * * * *) لأن Laravel Scheduler يحدد توقيت كل أمر داخليًا. الشرح: cd /home/username/bloxbouns: ينتقل إلى مجلد المشروع. php artisan schedule:run: يشغل الجدولة. >> /dev/null 2>&1: يمنع إرسال مخرجات الأمر إلى البريد الإلكتروني أو السجلات. 2. معالجة Queue (لـ QUEUE_CONNECTION=database) الغرض: يعالج الوظائف المخزنة في جدول jobs (مثل إرسال إشعارات FCM أو معالجة طلبات الاسترداد). نظرًا لأن الاستضافة المشتركة لا تدعم تشغيل queue:work بشكل مستمر، نستخدم queue:work --once لمعالجة وظيفة واحدة في كل مرة. الأمر: bash * * * * * cd /home/username/bloxbouns && php artisan queue:work --once --queue=notifications,redeems >> /dev/null 2>&1 التوقيت: كل دقيقة (* * * * *) لضمان معالجة الوظائف بسرعة. الشرح: --once: يعالج وظيفة واحدة فقط ثم يتوقف، مما يناسب الاستضافة المشتركة. --queue=notifications,redeems: يحدد أولوية الـ Queues المستخدمة في مشروعك. ملاحظة: إذا اخترت QUEUE_CONNECTION=sync بدلاً من database، فلن تحتاج إلى هذا Cron Job لأن الوظائف تُنفَّذ بشكل متزامن. 3. تنظيف الجلسات القديمة الغرض: يزيل ملفات الجلسات القديمة من storage/framework/sessions لمنع تراكم الملفات واستهلاك مساحة التخزين (لأن SESSION_DRIVER=file). الأمر: bash 0 0 * * * cd /home/username/bloxbouns && php artisan session:gc >> /dev/null 2>&1 التوقيت: يوميًا عند منتصف الليل (0 0 * * *). الشرح: php artisan session:gc: ينفّذ أمر Laravel المدمج لتنظيف الجلسات بناءً على SESSION_LIFETIME (120 دقيقة في .env). 4. تنظيف الـ Cache الغرض: يزيل بيانات الـ Cache القديمة من storage/framework/cache لمنع تراكم الملفات (لأن CACHE_DRIVER=file). الأمر: bash 0 2 * * * cd /home/username/bloxbouns && php artisan cache:clear >> /dev/null 2>&1 التوقيت: يوميًا الساعة 2 صباحًا (0 2 * * *) لتجنب التداخل مع أوقات الذروة. الشرح: php artisan cache:clear: يحذف جميع بيانات الـ Cache. ملاحظة: إذا كنت تستخدم Cache بشكل مكثف (مثل تخزين إعدادات التطبيق)، فكر في ضبط التوقيت على مرة أسبوعيًا (مثل 0 2 * * 0) لتجنب حذف البيانات المهمة كثيرًا. 5. تنظيف جدول jobs (اختياري إذا استخدمت QUEUE_CONNECTION=database) الغرض: يزيل الوظائف القديمة أو المكتملة من جدول jobs لمنع تضخمه وتحسين أداء قاعدة البيانات. الأمر: bash 0 3 * * * cd /home/username/bloxbouns && php artisan queue:prune >> /dev/null 2>&1 التوقيت: يوميًا الساعة 3 صباحًا (0 3 * * *).