شرح صفوف ومحتوى الفقرة
قد تفشل الاتصالات الخارجية داخل المهمة مؤقتاً، لذا يتيح 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
}
}