Cron Job Scheduling In Laravel

    In this article, we will see cron job scheduling in laravel. Many times we require to run some piece of code in a specific interval time period in laravel and we need to run it manually every time but with the command scheduler through we can run and create a cron job in laravel 6/7/8. Also, we will see how to create a schedule in laravel 6 and laravel 7.

    So, let's see how to create a cron job in laravel 6/7/8, how to run a cron job in laravel 6/7/8, and how to create a scheduler in laravel.

Cron Job Scheduler In Laravel 6/7/8

    First of all, we will create a custom command it will execute with a task scheduling cron job.

php artisan make:command TestingCron --command=testing:cron

    Now add the below code in the TestingCron.php file.

    app/Console/Commands/TestingCron.php

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

class TestingCron extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'testing: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("Testing Cron is Running ... !");
     
        /*
           Write your database logic we bellow:
           User::create(['email'=>'send mail']);
        */
      
        $this->info('testing:cron Command Run Successfully !');
    }
}

    Now, In the kernel file we will set a specific time interval to run the cron job.

<?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\TestingCron::class,
    ];

    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        $schedule->command('testing:cron')->everyMinute();
    }

    /**
     * Register the commands for the application.
     *
     * @return void
     */
    protected function commands()
    {
        $this->load(__DIR__.'/Commands');

        require base_path('routes/console.php');
    }
}
Read Also: Pagination Example In Laravel

    There are many time interval options available like below.

->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

    Now, we are ready to run cron job scheduler command. So, run the below artisan command in your terminal.

php artisan schedule:run

    Output:

    cron 

    You might also like:

Bình luận
Vui lòng đăng nhập để bình luận
Một số bài viết liên quan