Laravel scheduler adalah fitur yang memungkinkan kamu untuk membuat berbagai perintah dengan kode PHP dan menjadwalkannya sesuai kebutuhan. Dalam pengerjaannya, Laravel masih membutuhkan Cron agar bisa menjalankan scheduler-nya. Lalu bagaimana caranya? Simak penjelasan lengkapnya dalam artikel berikut ini!

Apa itu Cron Job?

Merupakan bagian tak terpisahkan dari Laravel Scheduler, Cron Job adalah sebuah program yang memberikan kesempatan bagi para penggunanya (user) untuk melakukan optimasi terkait penjadwalan back-up, perawatan sistem, dan pemantauan ruang disk.

Biasanya, Cron Job bisa kamu temukan pada server yang menggunakan sistem operasi Linux. Tentunya, kehadiran Cron Job akan sangat membantu kamu yang memiliki lebih dari satu situs, sehingga proses pengaturannya mudah tanpa memakan banyak waktu.

Jadi, ketika kamu akan membuat kode PHP menggunakan Laravel Scheduler di program Cron Job, maka setidaknya pemahaman dasar terkait sistem Linux wajib kamu pahami supaya proses pengaturan sistemnya berjalan dengan lancar.

Penjelasan tentang cron job bisa kamu simak selengkapnya pada artikel ”Apa itu Cron Job?” yang telah Jagoan Hosting bahas beberapa waktu lalu.

Cara Menjalankan Cron Job dengan Laravel Scheduler

Nah, setelah kamu mengetahui pengertian Cron Job, tentunya kamu penasaran terkait bagaimana cara menjalankannya dengan Laravel Scheduler, bukan? Terdapat beberapa aspek utama untuk menjalankannya dan mari kita simak pembahasannya di bawah ini!

1. Membuat script pada Laravel schedule

  • Pada Laravel Scheduler, buka file kernel.php untuk mulai membuat script terkait penjadwalan dengan cara membuka direktori app/Console dan kamu bisa langsung melakukan editing file.
  • Setelah itu, kamu bisa langsung melakukan pembuatan script, Sob. Misalnya, kamu ingin membuat perintah terkait back-up data, maka bentuknya kurang lebih seperti ini: “protected $signature = ‘backup:database’;protected $description = ‘Backup database daily;”
  • Kalau kamu sudah memasukan perintah tersebut, maka nanti hasilnya akan menjadi “php artisan”. Nggak sampai di situ saja, ada beberapa script lagi yang harus dimasukan dan mungkin sedikit panjang, contohnya sebagai berikut:

$filename = “backup-” . Carbon::now()->format(‘Y-m-d’) . “.gz”;$command = “mysqldump –user=” . env(‘DB_USERNAME’) .” –password=” . env(‘DB_PASSWORD’) . ” –host=” . env(‘DB_HOST’) . ” ” . env(‘DB_DATABASE’) . ”  | gzip > ” . storage_path() . “/app/backup/” . $filename;$return  = NULL;

$output  = NULL;exec($command, $output, $return);

  • Melalui folder App/Console, kamu bisa langsung melakukan pemanggilan file melalui nama yang sudah diciptakan di bagian method schedule dan bentuk script-nya adalah: $schedule->command(‘backup:database’)->daily();
  • Siap menjalankan script yang dibuat? Yuk kamu bisa langsung mengetesnya terlebih dahulu melalui php artisan backup:database.  Jika kamu merasa semua script yang dibuat sudah oke, saatnya menyimpan semuanya melalui format .gz, ya!

2. Menjalankan Cron Job Laravel

Setelah memahami bagaimana cara membuat script di atas melalui Laravel Scheduler tutorial, langkah selanjutnya adalah menjalankan Cron Job, Sob!

Terdapat dua cara yang bisa kamu terapkan, yakni melalui cPanel dan SSH. Lantas, bagaimana cara menggunakan masing-masing dari keduanya?

Melalui cPanel

cPanel merupakan cara yang paling sering digunakan dalam mengakses Laravel Scheduler melalui Cron Job. Langkah-langkahnya seperti ini:

  • Pertama membuat command dan ditulis pada folder proyek yang sedang kamu kerjakan, lalu masukan script yang bentuknya seperti ini:

“php artisan make:command CronTes”

  • Nantinya, sistem Laravel Scheduler akan secara otomatis membuat file pada perintah /app/console/Commands/ dengan nama CronTes.php
  • Kamu bisa langsung membukanya di /app/Console/Commands/CronTes.php
  • Jika sudah, kamu dapat mengisi nama yang diinginkan melalui bagian signature di php artisan. Setelah itu, kamu bisa menambahkan deskripsi untuk melengkapi perintah yang dibuat. Contoh script-nya:

“protected $JagoanHosting = ‘cron:log’;

protected $description = ‘Memastikan command jalan dengan pembuatan log’;

  • Perintah yang sudah kamu buat nantinya akan masuk ke dalam command cron:log dan jangan lupa masukan script di function handle.

“public function handle() { \Log::info(“Cron is working fine!”); }”

  • Tambahkan command di bagian file App/Console/Kernel.php lalu dilanjutkan ke Function Schedule: “protected function schedule(Schedule $schedule) { $schedule->command(‘cron:log’) ->everyMinute(); }” (perintah every minute bisa kamu ubah kok, Sob! Tinggal disesuaikan dengan kebutuhan, ya)
  • Lanjutkan untuk menginput Cron Job di cPanel supaya bisa langsung menjalankan schedule. Langsung saja buka cPanel->Advanced->Cron Jobs. Karena di sini kita memilih perintah every minute, maka di bagian kolom setting, masukan Once Per Minute dan pilih add new Cron Job. Selesai!

Melalui SSH

  • Langkah pertama adalah masuk ke dalam terminal sistem dan memasukan script crontab-e untuk mengakses proyek yang sedang kamu jalankan.

Masukan script ini * * * * * /usr/local/bin/php /path_laravel/artisan schedule:run >> /dev/null 2>&1

  • Nantinya, setiap penjadwalan yang dilakukan akan disesuaikan berdasarkan perintah yang kamu masukan, Sob. Misalnya, kamu memilih hourly(), maka eksekusi perintah akan dijalankan setiap sejam sekali.
  • Jika sudah, maka cronjob sudah tersimpan dan hasilnya seperti ini jika berhasil disimpan: [[email protected] public_html]$ crontab –e/usr/bin/crontab.cagefs: installing new crontab.

Baca juga: Apa itu Laravel? Fitur dan Kelebihan Laravel dibanding Framework lainnya

3. Uji coba Cron Job Laravel

Dalam melakukan pengetesan uji coba Cron Job Laravel, caranya pun cukup mudah, yakni dengan melakukan pengecekan di info logging yang sudah kamu catat sebelumnya. 

Buka file bernama laravel.log. Tanda jika script yang kamu input sudah berhasil dijalankan, maka hasilnya akan seperti ini:

[2022-01-01 09:08:01] Local.INFO:  Cronjob berhasil dijalankan

[2022-01-01 10:08:02] Local.INFO:  Cronjob berhasil dijalankan

[2022-01-01 11:08:01] Local.INFO:  Cronjob berhasil dijalankan

[2022-01-01 12:08:02] Local.INFO:  Cronjob berhasil dijalankan

[2022-01-01 13:08:01] Local.INFO:  Cronjob berhasil dijalankan

4. Jika Cron Job Laravel Tidak Berhasil Dijalankan

Meskipun kamu sudah memasukan berbagai macam script dan dirasa benar, akan tetapi ada beberapa momen ketika Cron Job di Laravel Scheduler nggak bisa dijalankan, Sob. Ciri-ciri Cron Job tersebut akan memunculkan deretan tulisan seperti ini:

/user/local/bin/php/home/u23032923/public_html/path/to/cron/script

Untuk menghindari hal tersebut, kamu tentunya harus memasukan PHP yang lengkap dan rinci, contohnya saja jika kamu menggunakan jenis PHP 3, maka command yang kamu tuliskan kurang lebih seperti ini:

/usr/local/bin/ea-php 3/ path-laravel/_artisan schedule: run >> /dev/null 2>&1

Itulah pembahasan tentang Laravel Scheduler lengkap dengan bagaimana cara menjalankannya. Keberadaan Cron Job Laravel akan sangat membantu kamu agar bisa mengelola website secara otomatis dan lebih efektif. 

Namun, performa website bisa lebih maksimal jika menggunakan hosting dan domain yang tepat, seperti Jagoan Hosting. Di Jagoan Hosting sendiri hosting kamu akan mendapat jaminan performa maksimal dengan pemakaian optimal, sesuai dengan kebutuhan jumlah visitor per bulan. Coba sekarang Unlimited Hosting di Jagoan Hosting dengan gratis domain .com sampai dengan .id.

Semoga artikel ini bermanfaat dan selamat mencoba!

0 Shares:
Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

You May Also Like