(0275) 2974 127
CronJob merupakan fitur yang ada pada OS Linux dengan fungsi untuk menjalankan script atau task secara otomatis pada waktu yang ditentukan.
Dengan menggunakan cronjob, nantinya hanya dengan menjalankan script penjadwalan tertentu, sebuah task bisa dilakukan secara berulang pada server. Cron ini cocok untuk eksekusi pekerjaan yang dilakukan secara berulang misal backup data, monitor server, download, upload, kirim pesan dan lainnya.
Berikut ini adalah beberapa kasus penggunaan cron job yang relevan di bidang pengembangan website :
Inilah langkah menjalankan cronjob laravel yang dapat dicoba, yaitu :
Sebelum mengikuti langkah menggunakan laravel scheduler, pastikan instalasi laravel di cPanel hosting sudah dilakukan.
Jika laravel sudah terinstall dapat langsung mengikuti langkah-langkah dibawah ini untuk menjalankan Cronjob di Laravel :
Pada tahap ini akan membuat script penjadwalan pada method schedule yang ada pada file kernel.php di Laravel.
Silahkan buka direktori app/Console, kemudian klik kernel.php untuk mengedit file. Selanjutnya, dapat mengetikkan script penjadwalan pada file tersebut.
protected function schedule(Schedule $schedule)
{
// Masukkan Kode Anda Disini
$schedule->call(function () {
//Pengecekan apakah cronjob berhasil atau tidak
//Mencatat info log
Log::info('Cronjob berhasil dijalankan');
})->everyTwoMinutes();
}
Sebagai contoh disini akan membuat kode untuk melakukan pengecekan keberhasilan cronjob. Baris kode Log::info akan menampilkan informasi berhasil atau tidaknya cron yang telah dibuat. Info ini nantinya dapat dilihat pada laravel.log.
Jangan lupa untuk menambahkan kode berikut di bagian atas file kernel.php jika menggunakan Log dalam kode.
use Illuminate\Support\Facades\Log;
Informasi everyTwoMinutes() menunjukkan bahwa penjadwalan dilakukan setiap 2 menit. Dapat menyesuaikan frekuensi waktu cron sesuai dengan kebutuhan. Laravel scheduler memiliki banyak opsi waktu penjadwalan, beberapa diantaranya :
Method | Deskripsi |
->cron(‘* * * * *’); | Menjalankan task dengan waktu khusus yang spesifik |
->hourly(); | Menjalankan task setiap 1 jam |
->hourlyAt(17); | Menjalankan task setiap pukul 17:00 |
->everyTwoHours(); | Menjalankan task setiap 2 jam |
->twiceDaily(1, 13); | Menjalankan task 2 kali sehari, pada pukul 1:00 dan 13:00 |
->lastDayOfMonth(’15:00′); | Menjalankan task setiap hari terkahir dalam sebulan pada pukul 15:00 |
->yearlyOn(6, 1, ’17:00′); | Menjalankan task setiap tahun pada 1 Juni pukul 17:00 |
Pengaturan frekuensi waktu penjadwalan lainnya dapat dipelajari secara lengkap pada dokumentasi laravel task scheduler.
Dapat menjalankan cronjob laravel dengan 2 cara, yaitu dengan setting cronjob melalui cPanel atau setting cronjob melalui SSH.
Jika paket hosting mendukung fitur SSH, selain itu juga dapat menjalankan cronjob laravel dengan langkah berikut ini :
crontab -e
* * * * * /usr/local/bin/php /path_laravel/artisan schedule:run >> /dev/null 2>&1
* * * * * akan melakukan pengecekan cronjob secara otomatis pada setiap menit. Namun, script penjadwalan hanya akan dieksekusi sesuai waktu yang diatur pada script penjadwalan. Misal, jika pada script ditulis hourly(), maka script tetap akan dieksekusi tiap 1 jam sekali.
Jika paket hosting yang dipilih belum mendukung fitur SSH, seperti Paket Bayi dan Paket Pelajar Niagahoster, pengaturan corn job melalui cPanel adalah pilihan yang tepat.
Caranya, masuklah ke cPanel hosting, lalu masuk ke menu Advanced, kemudian klik fitur Cron Jobs. Selain itu juga dapat menggunakan fitur pencarian yang ada pada bagian kanan atas layar untuk melakukan pencarian fitur cron job.
Pada halaman Common Setting, lakukan pengaturan jadwal cron sesuai dengan kebutuhan. Selain itu bisa memiliki dari beberapa setting yang sudah tersedia agar lebih mudah.
Kemudian, masukkan command yang ingin dijalankan pada kolom isian Command dengan format sebagai berikut :
Pada contoh di atas menggunakan pengaturan cronjob setiap menit.
Lalu, apa bedanya waktu pada script php dan waktu di common setting? Waktu pada common setting adalah waktu cronjob untuk menjalankan command yang ditulis pada kolom command. Sedangkan, waktu pada script adalah waktu untuk eksekusi kode penjadwalan.
Sebagai contoh, pada langkah pertama membuat kode dengan frekuensi waktu everyTwoMinutes(). Walaupun pada common setting diatur untuk menjalankan cronjob pada setiap menit, tapi eksekusi script penjadwalan tetap akan dilakukan tiap 2 menit sekali.
Namun, ada pengecualian. Kalau pada script yang dibuat tidak memakai waktu penjadwalan, maka script akan dieksekusi sesuai waktu cronjob di common setting.
Oleh karena itu disarankan jika sudah mengatur waktu penjadwalan di script kernel.php, atur waktu di cPanel dengan Once Per Minute saja. Hal ini akan memudahkan ketika memiliki banyak kode penjadwalan dengan waktu yang beragam dalam script php.
Namun, jika belum mengatur waktu penjadwalan di script php dapat mengatur waktu langsung di cPanel.
Pada dasarnya, syntax pada kolom command akan menjalankan command schedule:run pada php artisan.
Syntax >> /dev/null 2>&1 berarti bahwa standard output akan diarahkan ke /dev/null yang artinya diabaikan. Namun, jika ingin menyimpan log cron job secara terpisah dapat membuat file baru dan mengubah syntax /dev/null menjadi path lokasi file output cron.
Misal lokasi file output ada pada /path_laravel/cron.log, maka command menjadi :
/usr/local/bin/php /path_laravel/artisan schedule:run >>
/path_laravel/cron.log 2>&1
Jangan lupa untuk mengganti /path_laravel/ pada kolom isian command dengan lokasi file laravel. Jika sudah selesai melakukan pengaturan, klik tombol Add New Cron Job.
Untuk memastikan apakah cron job sudah berjalan dengan baik, dapat melakukan test dengan mencatat info logging sesuai script pada langkah pertama.
Dapat mencari dan membuka file laravel.log. Jika informasi yang muncul seperti di bawah ini, maka cronjob telah berhasil dijalankan.
Dapat melanjutkannya dengan menambahkan script penjadwalan lainnya jika membutuhkannya.
Jika cronjob Laravel tidak berhasil dijalankan dapat melakukan edit cron job seperti pada gambar di bawah ini :
Harus menuliskan versi PHP yang digunakan secara spesifik. Misalnya jika memakai PHP versi 8, harus menuliskan command :
/usr/local/bin/ea-php8 /path_laravel/artisan schedule:run >> /dev/null 2>&1
Jangan lupa klik Edit Line agar perubahan yang dilakukan dapat tersimpan.
Apakah Anda menggunakan kartu ATM atau kartu debit? Suka bertransaksi secara cashless? Sepertinya Anda perlu…
Design website toko online tidak hanya soal estetika, tapi juga UX yang bagus secara keseluruhan.…
Sebelum memulai karir Anda sebagai desainer UX, Anda harus membuat portofolio yang mencakup semua pengalaman…
Keep-Alive memungkinkan browser pengunjung Anda mendownload semua konten (JavaScript, CSS, gambar, video, dll) melalui koneksi…
Job description seorang web developer adalah membuat situs web menggunakan berbagai bahasa pemrograman. Tanggung jawab…
Secara default, WordPress tidak mendukung A/B testing. Tapi jangan khawatir. Di bawah ini, kami telah…