Reklam · TEST
AdSense Test ReklamıGönderi üstü · Görüntülü
Laravel'de Oturum Temizliğini Zamanlanmış Komutla Otomatikleştir – webdedik gönderisi

Laravel'de Oturum Temizliğini Zamanlanmış Komutla Otomatikleştir

Laravel uygulamalarında veritabanı veya dosya sisteminde depolanan oturumlar zamanla birikir. Varsayılan olarak Laravel, web isteklerinin içinde rastgele bir temizlik işlemi (session lottery) çalıştırır ve süresi dolmuş oturumları siler. Ancak bu yöntem performans açısından ideal değildir; istek sırasında beklenmedik bir yavaşlama yaratabilir.

Daha iyi bir yaklaşım, temizlik işlemini zamanlanmış bir komutla ayrı bir görev olarak çalıştırmaktır. Laravel'in scheduler'ını kullanarak bunu kolayca ayarlayabilirsin.

İlk olarak, `app/Console/Kernel.php` dosyasında schedule metoduna git ve şu satırı ekle:

1protected function schedule(Schedule $schedule)
2{
3$schedule->command('session:garbage-collect')->everyFiveMinutes();
4}[/kod]
5
6Bu komut, her beş dakikada bir süresi dolmuş oturumları temizler. Sıklığı ihtiyacına göre ayarlayabilirsin; `everyMinute()`, `hourly()`, `daily()` gibi seçenekler var.
7
8Sonra, session lottery'i kapatman gerekir. Bunu `config/session.php` dosyasında yaparsın:
9
10[kod]
11'lottery' => [0, 0],

Lottery değerini `[0, 0]` olarak ayarlamak, rastgele temizliği tamamen devre dışı bırakır. Artık sadece scheduler aracılığıyla temizlik yapılacak.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası

Scheduler'ın çalışması için sunucunda cron job'u ayarlamalısın:

* cd /path/to/laravel && php artisan schedule:run >> /dev/null 2>&1

Bu cron, her dakika Laravel'in scheduler'ını çalıştırır ve zamanı gelmiş görevleri execute eder.

Bu yaklaşım, web isteklerinin hızını etkilemez ve oturumları düzenli olarak temizler. Özellikle yüksek trafikli uygulamalarda performans farkı belirgin olur.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz