Membuat laravel task scheduler windows

Dalam suatu development aplikasi adakalanya sebagai programmer kita mendapat suatu kasus permasalahan atau request dari user untuk membuat sebuah scheduling misal notifikasi kepada user aplikasi tersebut yang mesti di kirimkan dalam waktu tertentu, tentu juga kita sudah pernah atau mengggunakan cron job, dan task scheduller di windows. Pada bahasan kali ini saya ingin coba menyampaikan bagaimana cara membuat laravel task scheduler windows.

Di dalam laravel sudah terdapat fitur yang di khususkan untuk menjalankan scheduler dengan menggunakan cron job yang tentunya jika kita menggunakan sistem operasi linux atau hosting aplikasi laravel kita menggunakan apache yang berjalan di dalam sistem operasi linux. Nah bagaimana bagi kita yang menggunan php yang berjalan pada IIS windows, tentunya tidak ada  cron job, tetapi sebagai pengganti nya kita bisa menggunakan windows task scheduler.

Disini saya akan coba sampaikan sedikit pengalaman saya sebagai pemula dalam mempelajari framework laravel di suatu kasus yang mana saya membuat suatu aplikasi laravel  memerlukan scheduler untuk mengirimkan email laporan yang tergenerate dari hasil sebuah query database, laporan ini di kirim ke masing-masing email user aplikasi tersebut yang telah tersimpan dalam database terlebih dahulu tentunya, email laporan tersebut di kirimkan secara otomatis setiap jam 10 pagi misalnya pada contoh kasus saya, tentunya waktu scheduling nya dapat di rubah suka-suka kita pada windows task scheduler nantinya.

pertama ,  kita menambahkan sebuah commad pada bagian schedule laravel terlebih dahulu yaitu pada app\console\kernel.php




Di gambar diatas pada function schedule itu akan mengeksekusi sebuah controller  sendreport yang berfungsi sebagai template email nantinya. di sini saya membuat sebuah controller dalam folder yang terpisah yaitu folder tools, karena nantinya untuk akses controller ini tidak memerlukan login kedalam aplikasi.




penjelasan :


Mail::send($template_path, $data, function($message) use ($emailto,$emailcc) {

$template_path : adalah file view nya (blade), di contoh diatas adalah emailsent.blade.php

$emailto dan $emailcc adalah array email nya di tuju.

sender email akan mengikuti setup dari file konfigurasi .env  kita.

fungsi mailer diatas adalah built in dari laravel jadi kita tinggal menggunakan nya saja.

Contoh isi file emailsent.blade.php pada kasus saya :



Sebelum lanjut kepada setup konfigurasi file .bat nya jagan lupa untuk me registrasi route controller di atas pada file web.php pada contoh kasus saya :



Nah langkah selanjut nya adalah membuat file .bat yang akan di eksekusi oleh task scheduler nya windows. Silahkan beri nama file .bat nya apa aja sesuai dengan keinginan anda.

Isi file bat nya :

Langkah terakhir adalah dengan setup kedalam task scheduler nya windows, pada command windows start ketikan task dan pilih task scheduler




create new task. isi kan nama tasknya :


kemuadian klik tab trigger - klik new - tentukan kapan waktu scheduling nya berjalan :



Kemudian pilih tab action dan browse di mana lokasi file .bat nya tadi berada :



ok. selanjut nya silahkan test task scheduler windows nya.

Semoga bermanfaat.













Comments

Popular posts from this blog

Cara membuat toko online dengan menggunakan laravel

Bagaimana cara menghapus public di laravel 5

Bagaimana cara menggunakan ajax di laravel 5