Cron Job ile saniye aralıklarla PHP dosyalarının çalıştırılması

Şu aralar üzerinde çalıştığım bir proje için uzun zamandır bu konuyu araştırıyordum. En bilindik adıyla ve Cron Job olarak tabir edilen zamanlanmış görevler, en az 1dk aralıklarla çalıştırılabiliyordu. Ancak PHP dosyamı 20 saniye aralıklarla çalıştırmam lazımdı. Uzun arayışlar sonunda çözümü buldum 🙂

Cron Job ile saniye aralıklarla PHP dosyalarının çalıştırılması

Sadece olayı açıklayacağım ve kullanmış olduğunuz sunucu yönetim panellerinizden zamanlanmış görev nasıl eklenir, anlatmayacağım. Lütfen bu kısmı siz araştırın 😉

1 dakika arayla çalışan php dosyası

[CODE]*/1 * * * * /php -q -f /sistem-dizini/dosya.php[/CODE]

Yukarıdaki gibi bir örnek ile her 1 dakika arayla dosya.php dosyası çalıştırılabiliyordu. Ancak belirttiğim gibi asıl amaç 20 saniye aralıkla bu dosyayı çalıştırabilmek.

20 saniye arayla çalışan php dosyası

Bunun için aynı dosyamı 3 farklı şekilde ve 1 dakika arayla çalışmaya programlıyorum. Ancak sonraki 2 tanesine bekleme uyguluyorum. Araştırmalarımdan edindiğim bilgiye göre; eğer ilk çalışan dosya 20 saniye boyunca işlemini tamamlamazsa, 20. saniyede çalışması gereken dosya çalışmıyormuş. Yani sistem izin vermiyormuş. Bu tamamen yanlış bir bilgi de olabilir. Bu konuda uzman bir arkadaşımız beni de aydınlatabilir. Ancak aşağıdaki şekilde uygularsanız, her 20 saniye arayla php dosyanızı çalıştırabilirsiniz.

[CODE]
*/1 * * * * /php -q -f /sistem-dizini/dosya.php
*/1 * * * * sleep 20; /php -q -f /sistem-dizini/dosya.php
*/1 * * * * sleep 40; /php -q -f /sistem-dizini/dosya.php
[/CODE]

Hımm, sunucu bilgisayarı bundan nasibini nasıl alır, bilemem 🙂 Eğer paylaşımsız ve sadece size ait bir sunucu bilgisayarı kullanıyorsanız, makine sadece bu dosyayla uğraşacağı ve işlemini sürekli kesecek web siteleri sorguları olmayacağından, problemsiz devam edecektir görüşündeyim. Ancak paylaşımlı bir sunucu üzerinde çalışıyorsanız, pek önermem 🙂 Aslında bu, PHP dosyanız içerisinde neler yaptığınıza da bağlı elbet.