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: CSV Yüklemelerinde Çökme Sorunlarını Durdurun: Laravel Job Gruplama Konusunda Usta Olun
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 » CSV Yüklemelerinde Çökme Sorunlarını Durdurun: Laravel Job Gruplama Konusunda Usta Olun

Yazılım

CSV Yüklemelerinde Çökme Sorunlarını Durdurun: Laravel Job Gruplama Konusunda Usta Olun

teknomers
Son güncelleme: 18 Mayıs 2026 18:15
teknomers
Paylaş
Paylaş

100,000 Satırlık Kabus

<p>B2B SaaS platformlarında, büyük veri işleme vazgeçilmez bir özelliktir. Kurumsal müşteriler, müşteri kayıtları, envanter veya geçmiş veriler içeren 100.000 satırlık CSV dosyaları yükleyecektir. Bu veriyi HTTP kontrolörü içinde senkron olarak parse etmeye çalıştığınızda, PHP zaman aşımına uğrayabilir, sunucu 502 Bad Gateway hatası verebilir ve kullanıcı hayal kırıklığına uğrayabilir.</p>

<p>Zaman aşımının çözümünü zaten biliyorsunuz: İşi arka plana taşıyın ve Laravel Queues kullanın. Ancak, kuyruklar yeni bir mimari problem getirir. CSV'yi parçalamak ve 1.000 ayrı arka plan görevi göndermek isterseniz, tüm sürecin ne zaman tamamlandığını nasıl bileceksiniz? Kullanıcıya nasıl bildireceksiniz? İş #450 başarısız olursa, diğerleri başarıyla geçerse ne yapacaksınız? Cevap <strong>Laravel Job Batching</strong>.</p>

<h2>Kurumsal Çözüm: `Bus::batch()`</h2>

<p>Job Batching, büyük bir dizi bireysel görevi bir araya getirmenizi, bunları kuyruk işçileriniz için eşzamanlı olarak göndermenizi ve tüm grubun tamamlandığında, ilk başarısızlığıyla karşılaştığında veya durumuna bakılmaksızın sona erdiğinde yalnızca çalışan net geri çağırmaları tanımlamanızı sağlar.</p>

<h3>Adım 1: İçe Aktarma Kontrolörünü Tasarlamak</h3>

<p>CSV'yi döngüye sokup kayıtları doğrudan kaydetmek yerine, CSV'yi okuyup daha küçük dizilere (örneğin, parça başına 500 satır) böleriz ve bir <code>ProcessCsvChunk</code> işini bir diziye ekleriz. Daha sonra grubu göndeririz.</p>

<pre><code>

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Bus;
use App\Jobs\ProcessCsvChunk;
use Throwable;

class ImportController extends Controller
{
public function importCustomers(Request $request)
{
// 1. CSV verisini oku ve parçalara ayır (bir yardımcı fonksiyon varsayıyoruz)
$chunks = $this->getCsvDataInChunks($request->file(‘import’), 500);
$jobs = [];

    foreach ($chunks as $chunk) {
        $jobs[] = new ProcessCsvChunk($chunk, $request-&gt;user()-&gt;tenant_id);
    }

    // 2. Grubu gönder
    $batch = Bus::batch($jobs)-&gt;then(function (Bus\Batch $batch) {
        // Tüm görevler başarıyla tamamlandı
        // Örneğin, bir e-posta gönder veya bir WebSocket olayı yay
        \Log::info("Import Batch {$batch-&gt;id} sorunsuz tamamlandı.");

    })-&gt;catch(function (Bus\Batch $batch, Throwable $e) {
        // İlk grup iş başarısızlığı tespit edildi
        \Log::error("Import Batch {$batch-&gt;id} başarısız oldu: " . $e-&gt;getMessage());

    })-&gt;finally(function (Bus\Batch $batch) {
        // Grup çalışması (başarılı veya başarısız) sona erdi
        \Log::info("Batch {$batch-&gt;id} yürütmesi tamamlandı.");

    })-&gt;name('Enterprise Customer Import')-&gt;dispatch();

    // 3. Hemen batch ID'sini ön uca döndür
    return response()-&gt;json([
        'status' =&gt; 'processing',
        'batch_id' =&gt; $batch-&gt;id
    ]);
}

}

<h3>Adım 2: Ön Uçta İlerlemeyi Anketleme</h3>

<p>Kontrolör, <code>batch_id</code>'sini hemen döndürdüğü için, React veya Next.js ön uçlarınız bunu kullanarak basit bir uç noktayı anketleyebilir (veya bir yayını dinleyebilir) ve kullanıcıya canlı bir ilerleme çubuğu gösterebilir. Laravel, toplam görevler ile işlenmiş görevler arasındaki farka dayanarak bu ilerlemeyi otomatik olarak hesaplar.</p>

<pre><code>

// Batch durumunu kontrol etmek için basit bir route
Route::get(‘/batch/{batchId}’, function (string $batchId) {
return Bus::findBatch($batchId);
});

<h2>Mühendislik ROI'si</h2>

<p>Job Batching uygulaması, kırılgan ve çökme riski taşıyan bir uç noktayı kurumsal düzeyde bir veri boru hattına dönüştürür. Veri alımını çok daha hızlı hale getirmek için aynı anda birden fazla kuyruk işçisini kullanmanıza olanak tanır, kutudan çıkışta gerçek zamanlı ilerleme takibi sağlar ve karmaşık başarı/başarısızlık döngüleri üzerinde tam programatik kontrol sunar.</p>

Kaynak: Orijinal Makale

2026’da PHP Geliştiricileri için En İyi 10 VS Code Eklentisi
Yüksek Trafikli Laravel Uygulamaları için Veritabanı Optimizasyon Teknikleri
2022 için iOS 15’te yapılacak en iyi uygulamalar seçimimiz
Laravel Google Sheets v1.1.0: Fark Önizlemeleri, Senkronizasyon Yöntemleri, Kuru Çalışmalar ve Yeniden Deneme Gecikmesi
Üreticiler için En İyi 5 Sosyal Medya Pazarlama Türü
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Amazon’un Yeni Alexa Özelliğiyle Podcast Bölümleri Oluşturuluyor
Sonraki Makale Subnautica 2 İçin Krafton Çalışanlarına Önemli Teşvikler Sağladı

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Mahkemeden Önemli Bir Karar: Geofence İzinleri Gizlilik Haklarıyla Korundu
Genel
Sony, PS6 İçin Beklentileri Belirliyor: Donanım Kayıplarına Son Veriyor
Oyun
Dronlar, İsa ve Vatican: Beklenmedik Buluşma Nasıl Gerçekleşti?
Genel
Kamerasız Akıllı Gözlükler: Tony Stark Gibi Hissetmek Mümkün mü?
Liste
Acil: ABD, WhatsApp ve Signal kullanıcılarını hedefleyen hackerlar için 10 milyon dolar ödül veriyor
Siber Güvenlik
Rocket Lab’dan Dev Bir Hamle: İridium’u Satın Aldı
Genel
//

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?