Laravel alt yapısı ile oluşturulan web uygulamalarında zamanlanmış görev tanımlama nasıl yapılır konusunu bu yazıda ele alacağız. Laravel 10 Zamanlanmış Görev Oluşturma Task Scheduling işlemi belirlenen zaman aralıklarında belirli komutların çalıştırılmasına imkan sağlar. Örnek olarak kullanıcılara otomatik e-posta gönderimi, otomatik site haritası oluşturulması gibi işlemler Task Scheduling ile belirleyeceğiniz bir zamanda kendiliğinden çalışır.
Laravel Task Scheduling yani Zamanlanmış Görev nasıl kullanılır sorusunun cevaplayalım. Örnek projede elimizde bir web uygulamasının olduğunu düşünelim ve web uygulamamıza eklenen her içeriğin her gece saat 00:00’da otomatik olarak site haritasına eklenmesini isteyelim.
İlk olarak Laravel 10 Otomatik Sitemap Nasıl Oluşturulur isimli yazımızda belirtilen sitemap kütüphanesini Laravel projemize ekleyerek işlemlere devam edelim. Yazımızın sonunda yer alan php artisan make:command GenerateSitemap komutunu app/Console dizini içerisinde bulunan Kernel.php dosyasını açıyoruz. Kernel.php dosyası içerisinde bulunan schedule isimli fonksiyonun içerisine aşağıdaki komutu ekleyelim.
*Not: Sunucu saatiniz ile Laravel proje dosyasında bulunan saatine Türkiye saatine göre ayarlandığından emin olun!
$schedule->command('app:generate-sitemap')->dailyAt(‘00:00’);
Yukarıda yer alan komut satırını kernel.php dosyasına ekledikten sonra artık Laravel'in zamanlayıcısını aktifleştirmek gerekir. Bunun için sunucunuzun crontab'ında bir cron job ayarlamanız gerekir. Bu cron job, Laravel'in schedule:run komutunu her dakika veya sizin belirleyeceğiniz zaman aralığında otomatik olarak çalıştırır.
Crontab'ı düzenlemek için terminalde şu komutu çalıştırın:
crontab -e
Crontab'a aşağıdaki satırı ekleyin:
* * * * * cd /path/to/your/project && php artisan schedule:run >> /dev/null 2>&1
/path/to/your/project kısmını Laravel uygulamanızın tam yolu ile değiştirin. Bu satır, Laravel'in zamanlayıcısının her dakika çalışmasını sağlar, böylece ayarladığınız tüm görevler belirtilen zamanlarda çalıştırılır.
Bu adımlar, Laravel 10 uygulamanızda cron job'ları nasıl çalıştırabileceğinizi göstermektedir. Artık Laravel'in görev zamanlayıcısını kullanarak, uygulamanızın ihtiyaç duyduğu görevleri düzenli olarak otomatik şekilde çalıştırabilirsiniz.