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

MrCatz DataTable (Livewire) ile Dakikalar İçinde Laravel Admin CRUD Oluşturma
Her Sabah amoCRM Kontrol Etmeyi Nasıl Bıraktım ve Yerine Bir Telegram Botu Geliştirdim
Autokorreksiyonu engelleme: Laravel, Grok ve OpenSpec ile AI ajansları için güvenlik sistemlerinin pratik bir demonstrasyonu
Laravel Uygulamalarını Svelte ve Vite.js ile Entegre Etme: Pratik Bir Rehber
FormFlow’a Katıl ve Katkıda Bulun
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

Philips Hue Bridge Pro ile Aydınlatmada Yeni Bir Dönem mi Başlıyor?
Liste
Fransa’da Kritik: Hükümet İletişim Servisi Hesap Hacklendi
Siber Güvenlik
Utah’daki Kızamık Vakalarında Anne-Babaların Çaresizliği ve Doktorların Üzüntüsü
Genel
Nashville Hayvanat Bahçesi veri merkezi inşasına karşı çıkıyor
Donanım
Canavarların Dünyasında Yönetim Deneyimi: Korku Evi Eğlencesi
Oyun
Amazon Çalışanları Seattle’dan Yeni Veri Merkezlerine Ara Vermesini İstiyor
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?