Laravel'de Queue Sistemi: Asenkron İşlemler ve İş Kuyrukları

Kaan Atalay
30 May 2024
Web uygulamalarında bazı işlemler zaman alıcı olabilir ve kullanıcı deneyimini olumsuz etkileyebilir. Laravel Queue Sistemi, bu tür işlemleri arka plana alarak uygulamanızın performansını ve kullanıcı deneyimini iyileştirir.
1. Queue Sistemi Nedir?
Queue sistemi, zaman alan işlemlerin asenkron olarak yürütülmesini sağlayan bir mekanizmadır. Örneğin, e-posta gönderimleri, rapor oluşturma veya dış API çağrıları.
2. Queue Driver'ları
Laravel, çeşitli queue driver'ları destekler:
- Database: Veritabanı tabanlı kuyruklar.
- Redis: Hızlı ve etkili bir kuyruk sistemi.
- Beanstalkd: Hafif ve hızlı bir kuyruk sunucusu.
- SQS: Amazon'un yönetilen kuyruk hizmeti.
3. Kurulum ve Yapılandırma
.env dosyasında queue driver'ını ayarlayın:
QUEUE_CONNECTION=database
Migrasyonları çalıştırın:
php artisan queue:table
php artisan migrate
4. Job Oluşturma
Yeni bir iş sınıfı oluşturun:
php artisan make:job SendWelcomeEmail
handle metodunda iş mantığını tanımlayın.
5. İşleri Kuyruğa Gönderme
İşi kuyruğa ekleyin:
dispatch(new SendWelcomeEmail($user));
6. Queue Worker'ı Başlatma
Queue işlemlerini yürütmek için worker'ı çalıştırın:
php artisan queue:work
7. Gecikmeli ve Zamanlanmış İşler
- delay metodu ile işi gecikmeli olarak kuyruğa ekleyebilirsiniz.
dispatch(new SendReport())->delay(now()->addMinutes(10));
8. Hata Yönetimi ve Deneme Sayısı
- İşlerin başarısız olması durumunda otomatik olarak tekrar denenmesini sağlayabilirsiniz.
- failed_jobs tablosu ile başarısız işleri takip edin.
9. Prioriteler ve Çoklu Kuyruklar
- Önceliklendirme yapmak için farklı kuyruk isimleri kullanın.
php artisan queue:work --queue=high,default
10. Supervisord ile Worker Yönetimi
Production ortamında supervisord veya benzeri bir araçla worker'ları yönetebilirsiniz.
Sonuç
Laravel'in queue sistemi, uygulamanızın performansını ve ölçeklenebilirliğini artırmak için güçlü bir araçtır. Asenkron işlemlerle kullanıcı deneyimini iyileştirebilir ve sistem kaynaklarını daha verimli kullanabilirsiniz. Atalay Tech olarak, projelerinizde en iyi uygulamaları kullanarak size destek oluyoruz. Daha fazla bilgi için bizimle iletişime geçin.