ahmadajah03 Sat Apr 2020 1 year ago

Tutorial Laravel 7/6 Cron Job Task Scheduling

Anda punya pertanyaan? bagaimana cara membuat cron job di laravel 7/6? atau bagaimana membuat cron job di laravel 7/6? atau Bagaimana cara menggunakan task scheduling di laravel 7/6? daripada saya akan memberi Anda contoh sederhana task scheduling cron job dengan laravel 7/6. saya akan membuat tutorial langkah demi langkah dengan pengaturan cron job menggunakan task scheduling laravel 7/6. Anda juga dapat mengatur cron job di server Anda.

Kenapa kita harus menggunakan cron job? dan apa untungnya menggunakan cron job di laravel 6 dan bagaimana mengatur cron job di laravel 6 ?, Jika Anda memiliki pertanyaan ini maka saya akan menjelaskan alasannya. Sering kali kita perlu mengirim pemberitahuan atau mengirim email secara otomatis ke pengguna untuk memperbarui properti atau produk. Jadi pada saat itu Anda dapat mendefinisikan beberapa logika dasar untuk setiap hari, jam dll dapat berjalan dan mengirim pemberitahuan email.

Anda juga ingin mengatur cron job di server Anda maka Anda dapat mengikuti tutorial ini dan mari kita terapkan.

Langkah 1: Instal Laravel 7/6

Pada langkah ini, jika Anda belum menginstal aplikasi laravel 6 maka kita harus mendapatkan aplikasi laravel 6 yang baru. Jadi jalankan perintah di bawah ini dan dapatkan aplikasi laravel 6 yang bersih dan segar.

composer create-project --prefer-dist laravel/laravel blog

Langkah 2: Buat New Command

Pada langkah ini, kita perlu membuat perintah khusus kita. perintah custom akan dijalankan dengan tugas scron penjadwalan tugas. jadi, mari kita jalankan perintah di bawah ini untuk membuat perintah custom baru.

php artisan make:command DemoCron --command=demo:cron

Sekarang buat beberapa perubahan pada file Command.

app/Console/Commands/DemoCron.php

<?php
   
namespace App\Console\Commands;
   
use Illuminate\Console\Command;
   
class DemoCron extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'demo:cron';
    
    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Command description';
    
    /**
     * 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!");
     
        /*
           Write your database logic we bellow:
           Item::create(['name'=>'hello new']);
        */
      
        $this->info('Demo:Cron Cummand Run successfully!');
    }
}

Langkah 3: Register sebagai Task Scheduler

Pada langkah ini, kita perlu mendefinisikan perintah pada file Kernel.php dengan waktu ketika Anda ingin menjalankan perintah Anda seperti fungsi di bawah ini:

->everyMinute(); Run the task every minute
->everyFiveMinutes(); Run the task every five minutes
->everyTenMinutes(); Run the task every ten minutes
->everyFifteenMinutes(); Run the task every fifteen minutes
->everyThirtyMinutes(); Run the task every thirty minutes
->hourly(); Run the task every hour
->hourlyAt(17); Run the task every hour at 17 mins past the hour
->daily(); Run the task every day at midnight
->dailyAt(’13:00′); Run the task every day at 13:00
->twiceDaily(1, 13); Run the task daily at 1:00 & 13:00
->weekly(); Run the task every week
->weeklyOn(1, ‘8:00’); Run the task every week on Tuesday at 8:00
->monthly(); Run the task every month
->monthlyOn(4, ’15:00′); Run the task every month on the 4th at 15:00
->quarterly(); Run the task every quarter
->yearly(); Run the task every year
->timezone(‘America/New_York’); Set the timezone

app/Console/Kernel.php

<?php
   
namespace App\Console;
    
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
    
class Kernel extends ConsoleKernel
{
    /**
     * The Artisan commands provided by your application.
     *
     * @var array
     */
    protected $commands = [
        Commands\DemoCron::class,
    ];
     
    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        $schedule->command('demo:cron')
                 ->everyMinute();
    }
     
    /**
     * Register the commands for the application.
     *
     * @return void
     */
    protected function commands()
    {
        $this->load(__DIR__.'/Commands');
     
        require base_path('routes/console.php');
    }
}

Langkah 4: Run Scheduler Command untuk Test

sekarang kami siap menjalankan cron kami, sehingga Anda dapat memeriksa secara manual menggunakan perintah cron berikut. jadi mari kita jalankan perintah di bawah ini:

php artisan schedule:run

Setelah menjalankan perintah di atas, Anda dapat memeriksa file log di mana kami sudah mencetak beberapa teks. jadi buka Anda file log Anda seperti di bawah ini:

storage/logs/laravel.php

[2019-04-24 03:46:42] local.INFO: Cron is working fine!  
[2019-04-24 03:46:52] local.INFO: Cron is working fine!  
[2019-04-24 03:46:55] local.INFO: Cron is working fine!  

Akhirnya Anda dapat mengelola perintah ini pada tugas penjadwalan, Anda harus menambahkan satu entri ke file crontab server Anda:

* * * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1

   

OR

  

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

Saya harap ini dapat membantu Anda ...

cron job laravel 7 laravel 6 laravel