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

Creating Queued Job Classes إنشاء كلاسات المهام الخلفية Jobs

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

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

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

نفذ الأمر php artisan make:job ProcessPodcast لتوليد كلاس مهمة داخل مجلد app/Jobs يطبق الواجهة ShouldQueue. عند تمرير نموذج Eloquent إلى باني المهمة، تقوم سمة SerializesModels بتخزين المفتاح الأساسي للنموذج فقط داخل الطابور وتعيد جلب السجل المحدث من القاعدة عند بدء تنفيذ دالة handle.

  • واجهة ShouldQueue (ShouldQueue Marker): تطبيق واجهة ShouldQueue يخبر Laravel بدفع المهمة إلى الطابور غير المتزامن بدلاً من تنفيذها لحظياً.
  • التسلسل الخفيف للنماذج (Lightweight Serialization): تحفظ سمة SerializesModels معرّف السجل فقط لمنع تضخم حجم البيانات وضمان جلب أحدث نسخة عند التنفيذ.
  • حقن الاعتماديات في handle (Method Dependency Injection): يمكنك التلميح النوعي للكلاسات الخدمية مباشرة في معاملات دالة handle ليحقنها الحاوي تلقائياً.
PHP
namespace App\Jobs;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Queue\Queueable;

class ProcessPodcast implements ShouldQueue {
    use Queueable;
    public function handle(): void {}
}