wwJobber(Proje)

Merhabalar,

Windows üzerinde php dosyasını cronjob yapmak için task manager vb. şeylerle uğraşmaktan sıkıldım ve olaya el attım ortaya aşağıdaki gibi bir şey çıktı.

Derli Uygulama, Dosyalar ve Kaynak Kodları İçin : wwPHP Projeler

wwJobber toplam 3 tane dosyadan oluşmaktadır bunlar ve amaçları aşağıdaki gibidir :

1- crontab.txt :
Bu dosyanın içerisine hangi *.php dosyası ne zaman çalıştırılacak, dosya hangi lokasyonda bunları tanımlıyoruz.
2- config.txt
php.exe’nin ve crontab.txt’nin bulunduğu lokasyonları girdiğimiz kısım.
3- wwJobber.py
buda işi yapan arkadaş.

Gelelim Kaynak Kodlarına, Dosyalara ve Kullanımına :

Öncelikle Kullandığımız Kütüphaneler :

Yukarıda da gözüktüğü gibi Python‘da halihazırda bulunan datetime, subprocess ve time kütüphanelerini kullanıyoruz.

Zamanlama için kullandığımız kodlar :

Crontab.txt’de bulunan verileri çekmek için kullandığımız kodlar :

Yukarıda bulunan “E:\Python33\proje\config.txt” kısmını config.txt’yi konumlandırdığınız dizin ile değiştirin.

Yukarıdaki kısımda da crontab.txt dosyasında bulunan verileri satır, satır çekip sırasıyla ay, gun, saat, dakika ve saniye kontrolleri yaparak “subprocess.call” komutuyla “php.exe -f *.php” şeklinde php dosyamızı php.exe’ye yorumlattıran kısım.

Kaynak kodların tamamı aşağıdaki gibidir :

Yukarıda bulunan kütüphaneleri ve kodları daha iyi anlamak için aşağıdaki yazılarımdan faydalanabilirsiniz.

Python ile saat, tarih işlemleri
Python ile exec komutunun çalıştırılması
Python ile dosyadan veri okuma

Kullanımı :

crontab.txt dosyası içerisinde her bir satıra aşağıdaki gibi cron görevi ekleyebilirsiniz:

Saniye-Dakika-Saat-Gün-Ay-Çalıştırılacak PHP Dosyası

Örnek crontab.txt içeriği :

1- Aşağıdaki blok test1.php dosyasını saniye her 20 olduğunda çalışmasını sağlar.

20-*-*-*-*-E:\Python33\\test1.php

2- Aşağıdaki blok test1.php dosyasının her saniye çalışmasını sağlar.

*-*-*-*-*-E:\Python33\\test1.php

Projenin Derli Uygulama, Dosyalar ve Kaynak Kodları İçin : wwPHP Projeler

Buyrun tepe, tepe kullanın.

Saygılarımla…