CB DIGITAL
Tüm Makalelere Dön
PHP & Laravel
1 Mart 2026

Laravel 11 ile Redis Destekli Arka Plan Kuyrukları (Queues) Nasıl Yapılır?

Cengiz Bozdemir
Cengiz BozdemirKurumsal Yazılım Mimarı
Laravel 11 ile Redis Destekli Arka Plan Kuyrukları (Queues) Nasıl Yapılır?

📌 Rehber Özeti & Hedef Çıktı

Kullanıcıya anında yanıt vermek için uzun süren e-posta gönderimi, PDF üretimi veya SMS işlemlerini Redis kuyruklarına devretme rehberi.

1. Giriş ve Karşılaşılan Temel Zorluklar

Bir kullanıcı kayıt olduğunda e-posta sunucusunun yanıt vermesini 3 saniye bekletmek dönüşüm oranını düşürür. Bu işlemleri asenkron kuyruğa aktarmak gerekir.

Modern kurumsal yazılım mimarisinde bu adımı doğru tasarlamak; hem uygulamanın bakım maliyetini (maintainability) düşürür hem de gelecekteki ölçekleme (scaling) süreçlerinde refactor ihtiyacını en aza indirir. Bu rehberde, sektörde kabul görmüş standartlar ışığında adım adım uygulamayı ele alıyoruz.

2. Ortam Hazırlığı ve Gerekli Bağımlılıklar

Geliştirmeye başlamadan önce sistem ortamınızın ve ilgili paketlerin hazır olduğundan emin olmalısınız. Terminalinizde aşağıdaki komutları çalıştırarak ilgili yapılandırmayı tamamlayın:

  • Adım: Composer ile 'composer require predis/predis' paketini kurun.
  • Adım: .env dosyasında 'QUEUE_CONNECTION=redis' tanımını yapın.
  • Adım: 'php artisan make:job SendWelcomeEmailJob' komutuyla iş sınıfını oluşturun.

3. Uygulama Mimarisi ve Kod Örneği

Aşağıdaki kod bloğunda, temiz kod (Clean Code) prensiplerine ve SOLID standartlarına uygun olarak tasarlanmış örnek implementasyonu inceleyebilirsiniz:

<?php

namespace App\Jobs;

use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Mail;
use App\Mail\WelcomeMail;

class SendWelcomeEmailJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public function __construct(public User $user) {}

    public function handle(): void
    {
        Mail::to($this->user->email)->send(new WelcomeMail($this->user));
    }
}

4. Kod Analizi ve Çalışma Mantığı

ShouldQueue arayüzü sayesinde Laravel bu sınıfı senkron çalıştırmak yerine Redis kuyruğuna JSON olarak yazar. Arka planda çalışan worker işlemi işler.

Yukarıdaki implementasyonda dikkat edilmesi gereken en kritik husus, işlemlerin bağımsız (decoupled) ve test edilebilir şekilde katmanlara ayrılmış olmasıdır. Bu yaklaşım, birim testlerin (Unit Tests) ve entegrasyon testlerinin hızlıca yazılabilmesine olanak tanır.

5. Performans ve Güvenlik İpuçları

Canlı üretim (production) ortamında sistemin kararlı çalışması için aşağıdaki pratikleri mutlaka dikkate almalısınız:

  • Canlı ortamda 'php artisan queue:work --tries=3 --timeout=60' parametreleriyle supervisor arkasında çalıştırın.
  • Failed jobs tablosunu periyodik kontrol ederek hata alan işleri inceleyin.
  • Kuyrukları 'emails', 'reports', 'default' şeklinde önceliklendirerek ayırın.

6. En Sık Yapılan Hatalar ve Hata Ayıklama (Troubleshooting)

Job sınıflarına çok büyük binary dosyaları parametre geçmek Redis hafızasını şişirir; sadece Model veya ID referansı geçilmelidir.

Eğer beklenmedik bir hata ile karşılaşırsanız; öncelikle log dosyalarını incelemeli, ortam değişkenlerinin (.env) doğru tanımlandığını doğrulamalı ve önbellek (cache) mekanizmalarını temizleyerek sistemi yeniden başlatmalısınız.

7. Sonuç ve Mimari Değerlendirme

Redis kuyruk mimarisi, kurumsal sistemlerde tepki sürelerini 100ms altına düşürmenin anahtarıdır.

Cengiz Bozdemir olarak 18 yılı aşkın kurumsal yazılım mimarlığı deneyimimle tavsiyem; sistem tasarımında her zaman sürdürülebilirlik, güvenlik ve yüksek eşzamanlılık (high concurrency) hedeflerini ön planda tutmanızdır. Kurumsal projelerinizde özel mimari danışmanlık veya uçtan uca yazılım geliştirme desteği için bizimle iletişime geçebilirsiniz.

#laravel#redis#queues#background jobs#worker#php
Cengiz Bozdemir

Cengiz Bozdemir

Kurumsal Yazılım Mimarı & Full-Stack Geliştirici

İşletmeniz veya girişiminiz için yüksek performanslı sistemler, özel yazılımlar ve yapay zeka otomasyonları inşa ediyorum.

KURUMSAL YAZILIM MİMARİSİ18+ YILLIK TECRÜBEPHP 8.3 & LARAVELFLUTTER & MOBİL ÇÖZÜMLERNEXT.JS & REACT UYGULAMALARIYAPAY ZEKA & OTOMASYONE-TİCARET & PAZARYERİ ENTEGRASYONUCENGİZ BOZDEMİRCBDIGITALKURUMSAL YAZILIM MİMARİSİ18+ YILLIK TECRÜBEPHP 8.3 & LARAVELFLUTTER & MOBİL ÇÖZÜMLERNEXT.JS & REACT UYGULAMALARIYAPAY ZEKA & OTOMASYONE-TİCARET & PAZARYERİ ENTEGRASYONUCENGİZ BOZDEMİRCBDIGITALKURUMSAL YAZILIM MİMARİSİ18+ YILLIK TECRÜBEPHP 8.3 & LARAVELFLUTTER & MOBİL ÇÖZÜMLERNEXT.JS & REACT UYGULAMALARIYAPAY ZEKA & OTOMASYONE-TİCARET & PAZARYERİ ENTEGRASYONUCENGİZ BOZDEMİRCBDIGITALKURUMSAL YAZILIM MİMARİSİ18+ YILLIK TECRÜBEPHP 8.3 & LARAVELFLUTTER & MOBİL ÇÖZÜMLERNEXT.JS & REACT UYGULAMALARIYAPAY ZEKA & OTOMASYONE-TİCARET & PAZARYERİ ENTEGRASYONUCENGİZ BOZDEMİRCBDIGITAL
© 2026 CB DIGITAL Tüm hakları saklıdır.