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: Kuyruk Çöküşlerini Önleme: Laravel’de Ölü Mektup Kuyrukları
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 » Kuyruk Çöküşlerini Önleme: Laravel’de Ölü Mektup Kuyrukları

Yazılım

Kuyruk Çöküşlerini Önleme: Laravel’de Ölü Mektup Kuyrukları

teknomers
Son güncelleme: 4 Temmuz 2026 07:39
teknomers
Paylaş
Paylaş

“Poison Pill” Felaketi

Smart Tech Devs’teki sağlam B2B SaaS platformlarında, ağır görevlerin (PDF raporları oluşturma veya webhook göndermek gibi) arka planda Redis kuyruklarına aktarılması zorunludur. Ancak, bir üçüncü parti API çökerse veya bir kullanıcı hatalı bir e-posta adresi gönderirse ne olur? Görev başarısız olur.

Kuyruklarınızı dikkatlice tasarlamazsanız, Poison Pill senaryosuyla karşılaşırsınız. Çalışan görevi denemeye çalışır, çökme yaşar ve görev kuyrukta geri itilerek üst üste biner. Çalışan tekrar alır, yine çökme yaşar. Çalışanınız, aynı görevin yeniden çalıştırılmasıyla sonsuz bir döngüye girer ve arka planda bekleyen binlerce sağlıklı görevi tamamen bloke eder. Asenkron hatlarınızı korumak için, katı yeniden deneme sınırları ve Dead Letter Queue (DLQ) uygulamanız şarttır.

Çözüm: Başarısız Görevleri Karantina Altına Alma

Dead Letter Queue, maksimum yeniden deneme sınırını aşan görevlerin kalıcı olarak karantinaya alındığı özel bir depolama alanıdır (Laravel’de genellikle failed_jobs veritabanı tablosudur).

Bir görev DLQ’ya taşındığında, çalışan bu görevi aktif Redis kuyruğundan çıkartır ve sonraki sağlıklı göreve geçer. Bu, arka plan işlemenizin asla durmamasını sağlar. Daha sonra, mühendislik ekibiniz DLQ’yi inceleyebilir, temel hatayı düzeltebilir ve karantinaya alınmış görevleri aktif hattınıza tekrar “oynatabilir”.

Adım 1: Görev Sınırlarını Tasarlamak

Her arka plan görevinde fiziksel sınırları açıkça tanımlamanız gerekmektedir. Bunu $tries (toplam deneme sayısı) ve $backoff (denemeler arasında bekleme süresi) ayarları ile yaparız.


namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Throwable;

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

    // 1. SINIRLAR: Bu görevi DLQ'ya geçmeden önce maksimum 3 kez deneyin
    public int $tries = 3;

    // 2. BEKLEME: Yeniden denemeden önce 10 saniye, ardından 30 saniye, ardından 60 saniye bekleyin
    public array $backoff = [10, 30, 60];

    public function handle(): void
    {
        // Ağırlıklı PDF oluşturma mantığını burada yürütün...
    }

    // 3. ✅ KURULUŞ PATERNI: DLQ Bağlantısı
    // Bu yöntem, görev tüm denemeleri tükettiğinde ve resmi olarak başarısız olduğunda ateşlenir.
    public function failed(Throwable $exception): void
    {
        // Slack/Discord üzerinden DevOps ekibinizi, bir görevin karantinaya alındığı konusunda bilgilendirin
        app('telemetry.service')->sendSlackAlert(
            "DLQ Uyarısı: Kurumsal Rapor oluşturulamadı.",
            ['error' => $exception->getMessage()]
        );
    }
}

Adım 2: DLQ’yı İzleme ve Yeniden Oynatma

Laravel, DLQ’yı php artisan queue:failed komutu ile yönetir. Bir satıcı API’si bir saatliğine çevrimdışı kalırsa, yüzlerce webhook görevi DLQ’ya taşınır. Satıcı çevrimiçi döndüğünde, bu webhook’ları tekrar manuel olarak tetiklemek zorunda değilsiniz. Sadece karantinaya alınmış görevleri yeniden oynatmalısınız.


# Karantina tablosunda bekleyen tüm zehirli görevleri görüntüleyin
php artisan queue:failed

# UUID'si ile belirli bir görevi yeniden deneyin
php artisan queue:retry 5c85b1a8-7013-4...

# veya, bir sistem kesintisi çözüldükten sonra tüm karantinaya alınmış görevleri birden yeniden deneyin!
php artisan queue:retry all

Mühendislik ROI’si

Katı yeniden deneme sınırlarını uygulayarak ve başarısız görevleri DLQ’ya yönlendirerek, izole bir veri hatasının sistematik bir kuyruk tıkanmasına neden olamayacağını garanti edersiniz. Uygulamanız kendiliğinden temizlenir, bu sayede yüksek öncelikli görevler (şifre sıfırlama gibi) başarısız analiz görevleri tarafından asla geciktirilmezken, başarısız yük ayrıca kolay manuel kurtarma için saklanır.

Kaynak: Orijinal Makale

Contents
  • “Poison Pill” Felaketi
  • Çözüm: Başarısız Görevleri Karantina Altına Alma
    • Adım 1: Görev Sınırlarını Tasarlamak
    • Adım 2: DLQ’yı İzleme ve Yeniden Oynatma
  • Mühendislik ROI’si
Laravel ile Hata Uyarılarını Telegram, Slack ve Discord’a Gönderen Bir Paket Nasıl Geliştirdim
Amazon TV’ler artık Zoom aramaları yapacak – ancak çok önemli bir kit parçasına ihtiyacınız olacak
Laravel Geliştiricileri için Git Worktrees: Paralel Olarak Birden Fazla Claude Kod Oturumu Çalıştırma
PHP 8.5’in Pipe Operatörü ve Laravel Koleksiyonları: Piper Nerede Uygun, Nerede Uygun Değil
Devraldığınız Bir Laravel Kod Tabanını Nasıl Denetlersiniz
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Jensen Huang’ın imzalı deri ceketi, yardım müzayedesinde $60,000’a satılacak

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Jensen Huang’ın imzalı deri ceketi, yardım müzayedesinde $60,000’a satılacak
Donanım
Geliştirici Kaydı: 2026-07-03 — idempotent senkronizasyonlar, izlenebilir e-posta ve boşaltma değil silme
Yazılım
PC Yapımı İçin 144’ü 1 Arada Elektrikli Tornavida Seti, 40$ Altında
Donanım
GitHub, Sony’nin fiziksel medyayı yok saymasına karşı Repo CD’ler sunuyor
Donanım
HP, RTX 5070 Omen 35L oyun PC’sinde 1,075$ indirim yaptı
Donanım
Yıl Ortası Backend Yenilemesi: H2 Hedeflerim – Hız, Güvenlik ve Daha İyi Belgeler
Yazılım
//

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?