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

Laravel 11 ile Task Scheduling (Cron Job) Nasıl Kurulur?

Cengiz Bozdemir
Cengiz BozdemirKurumsal Yazılım Mimarı
Laravel 11 ile Task Scheduling (Cron Job) Nasıl Kurulur?

📌 Rehber Özeti & Hedef Çıktı

Sunucuda tek bir cron satırı tanımlayarak tüm periyodik arka plan görevlerini Laravel kodları üzerinden yönetme adımları.

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

Her yeni görev için sunucuya SSH ile bağlanıp crontab düzenlemek sürdürülebilir değildir ve sürüm kontrolünden (Git) yoksundur.

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: Linux sunucunuzda 'crontab -e' açarak '* * * * * cd /path-to-project && php artisan schedule:run >> /dev/null 2>&1' satırını ekleyin.
  • Adım: Laravel 11'de 'routes/console.php' dosyasını açın.

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

use Illuminate\Support\Facades\Schedule;

// Her gece yarısı süresi dolmuş sepetleri temizle
Schedule::command('cart:clean-abandoned')
    ->dailyAt('00:00')
    ->withoutOverlapping()
    ->onOneServer();

// Her saat başı döviz kurlarını güncelle
Schedule::command('currency:fetch')
    ->hourly()
    ->runInBackground();

// Her 15 dakikada bir sistem sağlık kontrolü
Schedule::call(function () {
    \App\Services\HealthChecker::ping();
})->everyFifteenMinutes();

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

withoutOverlapping() görevin bir önceki çalışması bitmeden yenisinin başlamasını engeller. onOneServer() ise çoklu sunucularda çift çalışmayı önler.

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:

  • Görev çıktılarını 'sendOutputTo()' ile log dosyasına yönlendirin.
  • Görev başarısız olduğunda 'emailOutputOnFailure()' ile bildirim alın.
  • Ağır görevleri daima runInBackground() ile çalıştırın.

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

withoutOverlapping() kullanırken görev çökerse oluşan kilit dosyasını temizlemeyi unutmamak gerekir.

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

Task Scheduling, kod tabanıyla senkronize periyodik otomasyonun en güvenilir yoludur.

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#task scheduling#cron job#automation#linux#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.