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

Retries and Failed Job Recovery معالجة وإعادة تشغيل المهام الفاشلة

نقل العمليات الثقيلة إلى الخلفية عبر كلاسات المهام Jobs وطوابير الانتظار Queues وتشغيل العامل queue:work ومعالجة المهام الفاشلة.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

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

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

قد تفشل الاتصالات الخارجية داخل المهمة مؤقتاً، لذا يتيح Laravel ضبط عدد المحاولات التلقائية وفترات الانتظار عبر خاصيتي $tries و $backoff داخل كلاس المهمة. وإذا استنفدت المهمة جميع المحاولات المتاحة، ينقل Laravel بياناتها إلى جدول failed_jobs ويستدعي دالة failed الخاصة بها.

  • حدود المحاولة والانتظار (Retry Limits & Backoff): عرّف الخاصيتين $tries = 3 و $backoff = 30 داخل كلاس المهمة لتحديد المحاولات والمهلة الفاصلة.
  • خطاف الفشل النهائي (Failure Hook): نفذ دالة failed داخل كلاس المهمة لتنبيه الإدارة أو تنظيف الملفات المؤقتة عند فشل المهمة نهائياً.
  • الفحص وإعادة التشغيل (Inspecting & Retrying): استخدم الأمر queue:failed لعرض المهام المتعثرة والأمر queue:retry all لإعادتها للطابور.
PHP
class ProcessPodcast implements ShouldQueue {
    use Queueable;
    public int $tries = 3;
    public int $backoff = 60;
    public function failed(\Throwable $e): void {
        // Handle permanent job failure
    }
}