Merhaba arkadaşlar, bugün sizlere Laravel’de Queue (kuyruk) ve Job (iş) yönetimi hakkında detaylı bir rehber sunacağım. Laravel, uzun süren veya zaman alıcı işlemleri arka planda çalıştırmak için güçlü bir queue sistemi sunar. Bu sayede, kullanıcıların beklemesini engelleyerek uygulamanızın performansını artırabilirsiniz. Gelin, bu süreci adım adım inceleyelim.
Queue Yapılandırması
Laravel, queue işlemleri için birçok farklı sürücü sunar. Bunlar arasında database
, redis
, sqs
ve sync
gibi seçenekler bulunur. Queue yapılandırmasını .env
dosyasından yapabilirsiniz:
QUEUE_CONNECTION=database
Eğer database
sürücüsünü kullanıyorsanız, queue tablolarını oluşturmak için aşağıdaki komutu çalıştırın:
php artisan queue:table php artisan migrate
Job Oluşturma
Yeni bir job oluşturmak için aşağıdaki komutu kullanabilirsiniz:
php artisan make:job SendEmail
Bu komut, app/Jobs/SendEmail.php
dosyasını oluşturacaktır. Job dosyasını açarak handle
metodunu düzenleyin:
public function handle() { // E-posta gönderme işlemi Mail::to($this->email)->send(new WelcomeMail()); }
Job’u Queue’ya Ekleme
Job’u queue’ya eklemek için dispatch
fonksiyonunu kullanabilirsiniz. Örneğin, bir kullanıcı kaydolduğunda e-posta göndermek için:
SendEmail::dispatch($user->email);
Queue Worker’ı Başlatma
Queue’daki job’ları işlemek için queue worker’ı başlatmanız gerekiyor. Aşağıdaki komutu kullanarak queue worker’ı başlatabilirsiniz:
php artisan queue:work
supervisor
gibi araçlar kullanabilirsiniz.config/queue.php
dosyasından yapılandırabilirsiniz.php artisan queue:work --delay=60
gibi komutlar kullanabilirsiniz.Laravel’de queue ve job yönetimi, uzun süren işlemleri arka planda çalıştırarak uygulamanızın performansını artırmanın en etkili yollarından biridir. Eğer kullanıcı deneyimini iyileştirmek ve uygulamanızın ölçeklenebilirliğini artırmak istiyorsanız, queue ve job’ları mutlaka kullanmalısınız. Bir sonraki yazımda, Laravel’de Eloquent ORM: Veritabanı İşlemlerini Kolaylaştırın konusuna değineceğim. Görüşmek üzere!