Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Laravel 11’de defer() Kullanarak API Cevaplarımızı Tek Bir Kuyruğa Dokunmadan 3 Kat Daha Hızlı Hale Getirme
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Laravel 11’de defer() Kullanarak API Cevaplarımızı Tek Bir Kuyruğa Dokunmadan 3 Kat Daha Hızlı Hale Getirme

Yazılım

Laravel 11’de defer() Kullanarak API Cevaplarımızı Tek Bir Kuyruğa Dokunmadan 3 Kat Daha Hızlı Hale Getirme

teknomers
Son güncelleme: 2 Mayıs 2026 00:24
teknomers
Paylaş
Paylaş

TL;DR: Laravel 11, defer() fonksiyonunu hem geliştirdi ki bu fonksiyon, HTTP yanıtı kullanıcıya gönderildikten sonra kod çalıştırır. Kuyrulara, iş sınıflarına veya çalışanlara gerek yok. Tek yapmanız gereken, ateşle ve unut mantığındaki kodunuzu defer() içine sarın ve API’niz anında daha hızlı hale gelsin.


Geçen yıl, sipariş API uç noktamızın yanıt vermesinin 1.2 saniye sürdüğünü anlamak için iki gün harcadım. Sipariş yaklaşık 80 ms içinde oluşturuluyordu. Peki, geri kalan zaman nereye gidiyordu?

Açıkça bir onay e-postası gönderiyor; bir analiz olayı takip ediyor; üçüncü taraf bir hizmetle envanter senkronizasyonu yapıyor; bir önbellek anahtarını temizliyorduk. Tüm bunlar, yanıtlama kullanıcıya geri gönderilmeden önce eş zamanlı olarak gerçekleşiyordu.

Kullanıcı, sipariş onayını görmeden önce bu işlemlerin tamamlanmasını umursamıyordu. Tek istedikleri, siparişlerinin başarıyla geçtiğini bilmekti.


Eski Yöntem: Her Şey İçin Kuyruğa Alma

Genel tavsiye, bu görevleri bir kuyruğa itmek. Bir iş sınıfı oluşturmak. Görev oluşturmak. Bir kuyruk çalışanı çalıştırmak. İzleme kurmak. Hatalı görevleri yönetmek. Büyük bir uygulama için, karmaşık arka plan işlemleri var ise bu mantıklı.

Ancak, e-posta göndermek veya bir olayı takip etmek gibi basit ateşle ve unut görevleri için? Bu, basit olması gereken bir şey için çok fazla altyapı.

Uygulamamızda 14 farklı iş sınıfı vardı. Bunların sekizi, tek bir küçük işi yapan tek yöntemli sınıflardı. Her biri kendi dosyasına, testi ve hatalı görevler tablosunda kendi kaydına sahipti. Bu aşırı olarak hissettiriyordu.


defer() ile Tanışın

Laravel 11, defer() fonksiyonunu ekledi ve bunun arka plan görevlerine bakış açımı değiştirdi. İşte nasıl çalıştığı:

Route::post('/order', function () {
    $order = Order::create($data);

    defer(fn() => Mail::send(new OrderConfirmation($order)));
    defer(fn() => Analytics::track('order_placed', $order));
    defer(fn() => InventorySync::push($order));
    defer(fn() => Cache::forget("user:{$order->user_id}:cart"));

    return response()->json($order);
});

Cevap kullanıcıya sipariş oluşturulduktan hemen sonra geri gönderilir. Ardından Laravel, tüm defer edilen geri çağırmaları yanıt gönderildikten sonra çalıştırır. Kullanıcı bu işlemler için beklemek zorunda kalmaz.

Hiçbir iş sınıfına ihtiyaç yok. Hiçbir kuyruğa ihtiyaç yok. Hayır Redis ya da veritabanı kuyruk sürücüsü. Sadece yanıt sonrası çalıştırılan bir closure.


defer() ve Kuyruklar Ne Zaman Kullanılır?

Burada çoğu makalenin yanlış anladığı kısım. Ya “her şey için defer kullanın” ya da “her zaman kuyrukları kullanın” derler. Gerçek bunun daha incelikli olduğunu gösteriyor.

Görevi basit olduğunda ve tekrar deneme mantığına ihtiyaç duymuyorsa defer() kullanın. Bir bildirim e-postası göndermek. Bir analiz olayı takip etmek. Bir önbelleği temizlemek. Bir etkinliği kaydetmek. Eğer başarısız olursa otomatik olarak tekrar denemeye ihtiyacınız yoktur.

Kuyrukları, görev karmaşık olduğunda veya güvenilirlik garantilerine ihtiyaç duyduğunda kullanın. Bir ödemeyi işlemek. Büyük bir PDF oluşturmak. Binlerce kaydı bir harici API ile senkronize etmek. Eğer başarısız olursa bundan haberdar olmalısınız ve tekrar denemelisiniz.

Başlangıçta, bir webhook teslimatı için defer() kullanma hatasını yaptım. Webhook hedefi güvenilir değildi ve teslimatların %10’u sessizce başarısız oldu. Hiçbir tekrar deneme mekanizması yoktu. Hatalı görev için kaydı yoktu. O yüzden, bu durumu çözmek için geri kuyruk kullanmaya döndüm ve 3 tekrar ile sorunu hallettim.


Gerçek Sayılar

Sipariş uç noktamızı yeniden yapılandırdıktan sonra defer() kullanarak kritik olmayan görevlerde:

  • Yanıt süresi 1.2 saniyeden 280 ms’ye düştü
  • Kullanıcı tarafından algılanan performans dramatik bir şekilde iyileşti
  • 8 tane tek yöntemli iş sınıfını sildik
  • Kuyruk çalışanı yükü azaldı çünkü daha az iş gönderiliyordu

E-posta hala gönderiliyor. Analiz olayı hala takip ediliyor. Önbellek hala temizleniyor. Kullanıcı bunlar için hiçbir zaman beklemedi.


Her Projede Kullandığım Bir Model

Benim için, yaygın istek seviyesindeki görevleri erteleyen basit bir middleware oluşturuyorum.

class DeferCommonTasks
{
    public function handle($request, Closure $next)
    {
        $response = $next($request);

        defer(fn() => ActivityLog::record($request));
        defer(fn() => MetricsCollector::trackRequest($request, $response));

        return $response;
    }
}

Her istek, otomatik olarak etkinlik kaydeder ve metrikleri takip eder ve yanıta ek bir gecikme eklemez. Middleware bir defa çalışır ve her uç nokta bundan faydadır.


Farklı Olsaydım Ne Yapardım

Başından itibaren net bir kural belirlerdim. Eğer görev tekrar denemeye ihtiyaç duymuyorsa ve 5 saniyeden az sürüyorsa defer() kullanın. Eğer tekrar denemeye veya daha uzun sürüyorsa bir kuyruk kullanın. Bu kuralın erken belirlenmesi, sonunda karşılaştığımız 14 gereksiz iş sınıfından kaçınmamıza yardımcı olurdu.

Ayrıca defer() kullanıyorsanız, veritabanı işlemleri içinde kullanmaktan kaçınırdım. Eğer işlem geri alınırsa, defer edilen geri çağırma yine çalışır çünkü yanıt sonrası yürütülür. Bu da, sipariş onay e-postalarını başarısız olan siparişler için göndermemize neden olmuştu. Bunu zor şekilde öğrendim.


Genel Sonuç

defer() kuyruklar için bir ikame değildir. Sadece yanıt sonrası çalıştırmak için var olan küçük iş sınıflarının yerini alır.

Bir satır kod. Hiçbir altyapı değişikliği. Ölçülebilir daha hızlı yanıtlar.

Laravel 11 veya sonrası bir sürümdeyseniz ve henüz defer() kullanmıyorsanız, kullanıcılarınızı bekletiyorsunuz demektir. Laravel uygulamalarınızda bulduğunuz en basit performans kazanımı nedir?

Kaynak: Orijinal Makale

Contents
  • Eski Yöntem: Her Şey İçin Kuyruğa Alma
  • defer() ile Tanışın
  • defer() ve Kuyruklar Ne Zaman Kullanılır?
  • Gerçek Sayılar
  • Her Projede Kullandığım Bir Model
  • Farklı Olsaydım Ne Yapardım
  • Genel Sonuç
400 Satırlık Import Kontrolcülerden 20 Satırlık Konfigürasyonlara Laravel’de
Uzak VPS üzerinde Vite HMR Laravel çalıştıramayacağını düşündüm. Yanıldım.
Makarna Ödemesi Mantığını Durdur: Faturalama Durum Makinesi
Yazılım Arızası, Tui Uçağının Kalkışını Engelledi
Değiştirilemez Kayıtlarla Denetim Kanıtı Finansal İş Akışları Tasarlama
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale NBA, NFL ve MLB Oyuncularından Bahis Yasağı Çağrısı
Sonraki Makale Yeni Bir Linux Açığı: Saldırganlar Tüm Bilgisayarlara Root Erişimi Sağlayabiliyor!

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Zamanı Değerlendirmek İçin İhtiyacınız Olan Eğlenceler
Liste
Mutfaklarınıza Midsize Bıçakla Renk Katın: Dev Şef Bıçağına Gerek Yok!
Genel
Google, SpaceX ile 920M $’lık aylık hesap anlaşması imzaladı
Donanım
Teknoloji Dünyasında Yeni Apocrypha Kodları Geliyor
Oyun
Yaz Oyun Festivali 2026: En Heyecanlandıran Duyurular ve Oyunlar
Oyun
Yapay Zeka İçerik Üreticilerini Tanımak Zorlaşıyor
Liste
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?