The Denny Depok

The Denny Depok

Gosipin IT Bareng Mas Denny Depok Yuk…

The Denny Depok RSS Feed
 
 
 
 

Cron Untuk Windows

Semenjak saya menulis tentang bagaimana membuat Service Windows mempergunakan PHP (sekitar 3 tahun yang lalu). Ada saja programmer PHP yang menanyakan soal detil pemrograman service tersebut. Kebanyakan yang bertanya ke saya mencoba untuk mengimplementasikan Cron untuk lingkungan Windows.

Sebenernya saya menulis tulisan tentang service tersebut saat saya masih buta soal windows, oleh karena itu, untuk meluruskan kesalahan saya yang mungkin sudah mempengaruhi banyak programmer, saya khusus menulis artikel ini (sebenernya sudah lama ingin nulis, tapi baru aja kembali diingatkan ketika ada yang nanya kemarin ;) ).

Yang saya ingin luruskan adalah, sebenarnya windows (mulai dari windows 2000) sudah memiliki fasilitas yang mirip dengan cron, yang namanya “Scheduled Task” yang bisa diakses dari kontrol panel. He..he..he.. mungkin sebagian besar dari anda tertawa karena sudah jelas sekali maksudnya, tergambar dari namanya. Tapi untuk programmer yang ingin mengemulasikan fungsi Cron di windows kadang bingung untuk mulai dari mana.

Oke kita mulai langkah-langkahnya. Skenarionya adalah mengemulasikan cron yang berisi perintah “wget http://localhost/check.php” yang dipanggil tiap menit. Pertama, buat file vbs (ato js) yang berisi script untuk memanggil web page yang otomatis dibuka tiap menit, misal ktia simpan di file bernama “cron.vbs”. Isinya akan seperti ini :

Dim objRequest
Dim URL

On Error Resume Next

Set objRequest = CreateObject("Microsoft.XMLHTTP")
URL = "http://localhost/check.php"

objRequest.open "POST", URL , false
objRequest.Send
Set objRequest = Nothing

kemudian buka control panel, anda akan menemukan icon “Scheduled Task” yang kalau anda klik akan membuka folder yang berisi :

Klik 2 kali pada icon “Add Scheduled Task” untuk memulai wizard. Klik next pada wizard sampai pada form :

Browse untuk memilih file vbs yang sudah kita buat diatas. kemudian akan muncul form :

Pilih Daily, nanti ada seting tambahan supaya bisa per jam / menit. Klik next terus sampai akhir, isi dengan data yang sesuai, jangan lupa untuk memilih checkbox “Open advance properties for this task…” pada layar terakhir.

Pada form advance properties, pilih page “Schedule”, kemudian klik tombol “Advance” seperti layar dibawah ini :

Akan muncul form “Advance” dari form advance properties ;) seperti dibawah ini. Isi sesuai dengan yang saya tandai.

Kemudian jangan lupa untuk membuka page “Setting” dan uncheck semua pilihan seperti dibawah ini :

Kemudian tekan tombol OK, dan Tada…. Cron untuk windows anda sudah jadi. Mudah kan, tapi memang kalo belum tau caranya ya pusing carinya…

Tambahan FAQ lainnya :

1. Kok cuma per menit, gimana kalo mau per detik ?

Bisa di koding di bagian cron.vbs ato di check.php. Kalo saya biasanya di cek.php, jadi satu kali pemanggilan melakukan beberapa kali cek, contoh program untuk tiap 20 detik :

$count = 1;
while ($count <= 2) // kenapa 2 ? karena event ke 3 di menit selanjutnya
{
  doSomething();
  sleep(20);
  $count++;
}

2. Gimana mo buat restart komputer secara otomatis ?

Buat batch file (.bat) yang isinya :

SHUTDOWN -r -t 1

yup betul sekali windows punya shell command untuk restart komputer, coba cari parameter lain untuk efek yang berbeda.

3. Gimana buat restart suatu aplikasi tertentu secara otomatis ?

He..he..he.. ini sebenernya cara curang ngakalin program trial yang dibatesin waktu running. Triknya pakai 2 scheduled task, satu untuk matiin secara otomatis per waktu tertentu. Matiin program di window pake batch :

taskkill /F /IM [namaprogram.exe]

Trus buat schedule task untuk menghidupin program tiap 1 menit, jadi paling lama 1 menit programnnya gak berfungsi.

4. Gimana caranya buat … ?

Yah sebenernya sih tergantung kreativitas anda, intinya apapun yang bisa dipanggil dari command prompt, buat batch filenya. Yang bisa dipanggil lewat activeX, buat file vbs/js-nya. dan seterusnya. Untuk gambaran anda, sya pernah buat scheduled task untuk restart USB, kirim SMS per periode waktu, Print laporan per waktu tertentu, convert file jenis apapun ke PDF dan beberapa hal lain. Jadi intinya memang kreativitas anda saja.

Mudah-mudahan artikel ini bisa menghapus kesalahan saya menyesatkan banyak programmer sebelumnya ;)

Leave a Reply