Bir Web uygulaması geliştiriken yaşanan en büyük sıkıntılardan biride cron joblarların versiyon kontrol sistemine dahil edilemiyor olması. Bunun için Laravel’de tek cron job ile tüm zamanlanmış görevlerin yapılmasına olanak sağlayan bir sistem bulunuyor.Bu sistemi Windows test ortamında cron job olmadığı için bunu bir şekilde benzetim yaparak halletmeniz gerekiyor. Bunun için araştırma yaptığımda ilgili StackOverFlow makalesine ulaştım. Anladım ki bu işlemi Windows görev zamanlayıcısı (Windows Task Scheduler) ile halledebiliriz. Bunun için öncelikle not defteri açıp aşağıdaki kodları kendimize göre düzenleyip .bat olarak herhangi bir yere kaydedelim.
cd C:\neard\www\ProjeAdı C:\{PHPDizini}\php.exe artisan schedule:run 1>> NUL 2>&
- Daha sonra başlat menüsünden Windows görev zamanlayıcısını açalım. (veya Win+R’ye basın daha sonra taskschd.msc yazıp enter tuşuna basın)
- Sağ taraftan basit görev oluştur > Biri isim girin > İleri > oturum açtığımda seçin.
- Program başlat seçeneğini seçin > İleri butonuna basın.
- Gözattan oluşturduğunuz bat dosyasıını seçin.
Oluşturduğumuz görevin örnek olarak bir dakikada bir çalışmasını ele alalım. Şu an sadece bilgisayar açıldığında görev çalıştırılıyor.
- Soldan Görev Zamanlayıcı Kitaplığına tıklayın.
- Çıkan listeden verdiğiniz isimle görevi arayın.
- Görevin üstüne sap tıklayıp özellikler > tetikleyiciler sekmesine basın.
- Yeni > Görevi şu sürede yenile kısmına 1 dakika yazın ve tamam basın.
Bu şekilde görev her bir dakikada bir çalıştırılır. Eğer bunu engellemek istiyorsanız, sağ tık > devre dışı bıraka tıklamalısınız.