Kullanıcı her işi beklemek zorunda değil
Bir form gönderildiğinde sistem mail atacak, görsel işleyecek, PDF üretecek ve dış servise istek yapacaksa kullanıcıyı ekranda bekletmek iyi fikir değildir. Laravel queue tam burada devreye girer. İşi sıraya koyarsınız, worker arka planda işler.
Job nedir?
Job, yapılacak işi temsil eden küçük bir sınıftır. Mesela “teklif mailini gönder”, “yüklenen görseli optimize et”, “günlük raporu hazırla” gibi. Controller veya servis sadece job dispatch eder. Ağır işlem request süresini uzatmaz.
Hangi işler queue için uygundur?
- E-posta ve bildirim gönderimi
- PDF, Excel veya rapor üretimi
- Görsel/video işleme
- Dış API ile uzun süren konuşmalar
- Toplu import/export işlemleri
Worker takibi önemli
Queue kullanınca iş bitmiyor. Worker çalışıyor mu, job hata alınca ne oluyor, kaç kez denenecek, başarısız işler nerede görülecek gibi konuları da düşünmek gerekir. Yoksa “arka plana aldık” dediğiniz iş sessizce kaybolabilir.
Laravel’in queue sistemi farklı backend’lerle çalışabildiği için küçük projede database queue ile başlayıp ihtiyaç büyüdükçe Redis gibi çözümlere geçmek mümkün. Önemli olan ağır işi doğru zamanda doğru yere taşımak.