Pada tutorial kali ini kita akan membahas Cara Membuat Cronjob di cPanel dengan Laravel Task Scheduling.
Cron jobs memungkinkan Anda mengotomatisasi perintah dalam waktu tertentu, mungkin setiap minggu, setiap hari atau setiap jam sesuai yang Anda butuhkan.
Misalnya, melakukan backup file setiap pukul 00.00 malam hari, melakukan download file atau mengirim email setiap periode tertentu. Sehingga Anda tidak perlu repot untuk menjalankan perintah- perintah tersebut secara manual satu persatu.
Langsung saja Cara Membuat Cronjob di cPanel dengan Laravel Task Scheduling, langkah nya sebagai berikut :
1 . Buat command pada laravel menggunakan perintah berikut (pastikan perintah di ketikan di dalam folder project laravel kita)
php artisan make:command CronTes
2. Maka laravel akan membuat file CronTes.php
pada /app/Console/Commands/
3. Setelah itu, buka /app/Console/Commands/CronTes.php
4. Isikan nama command di bagian signature. Nama command ini akan muncul di list php artisan. dan jangan lupa untuk mengisi description yang mendeskripsikan command tersebut
protected $signature = 'cron:log';
protected $description = 'Membuat log, yang memastikan command jalan';
5. Setelah itu simpan, maka command cron:log
akan masuk ke list perintah php artisan. Coba jalankan perintah php artisan list pada terminal untuk melihat.
6. Masukkan script yang akan dieksekusi di function handle()
. Contoh seperti berikut membuat log ketika command dijalankan.
public function handle()
{
\Log::info("Cron is working fine!");
}
Berikut adalah Full Code nya:
class CronTes extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'cron:log';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Membuat log, yang memastikan command jalan';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
\Log::info("Cron is working fine!");
}
}
7. Lalu coba jalankan perintah cron:log
pada artisan
8. Untuk memastikan apakah command berjalan, lihat log laravel (karena di case ini perintah yang di eksekusi ketika command berjalan adalah membuat log. Perhatikan point 6.)
9. Jika sudah muncul di log, berarti command yang dibuat sudah berjalan dengan benar.
10. Langkah selanjutnya yaitu menambahkan command ke schedule laravel.
Buka file App/Console/Kernel.php
Lalu tambahkan command di function schedule
protected function schedule(Schedule $schedule)
{
$schedule->command('cron:log')
->everyMinute();
}
Perintah everyMinute()
bisa di ganti sesuai kebutuhan, lihat dokumentasi di Laravel-Task-Scheduling
10. Selanjutnya adalah memasukkan command ke cronjob di cPanel untuk menjalankan schedule.
Buka cPanel->Advanced->Cron Jobs
11. Lalu Add New Cron Job, pada Common Settings pilih Once Per Minute(* * * * *)
12. Dibagian command masukkan perintah berikut:
/usr/local/bin/ea-php71 artisan schedule:run >> /dev/null 2>&1
Pada perintah di atas, saya menggunakan /usr/local/bin/ea-php71
, dikarenakan di laravel yang terinstall di cPanel support php 7.1 keatas.
13. Terakhir, klik Add new Cron Job. Selesai
Hasilnya, Server akan menjalankan cron job yang mencatat Log setiap menitnya.
mantap, sangat membantu
terimakasih pak
yang android nya dong om ksh tutorial
masih fokus dulu di framework codeIgniter dan Laravel. Terimakasih ya sudah berkunjung. Doakan ke depan kami berjalan di tutorial android
Sang at nembantu Gan buat cara website menggunakan up andress