Laravel 10 Cron Job Task Scheduling Example Tutorial

Cron jobs are an essential part of any web application. They are used to automate tasks such as sending emails, running database backups, and more. In this tutorial, we will show you how to set up a cron job in Laravel 10.

1. Install the Scheduler

The first step is to install the Laravel Scheduler package. This package provides a convenient way to schedule cron jobs in Laravel. To install it, run the following command in your terminal:

composer require laravel/scheduler

2. Register the Scheduler

Once the package is installed, you need to register the scheduler in your application. To do this, open the app/Console/Kernel.php file and add the following line to the schedule method:

$schedule->command(‘schedule:run’)->everyMinute();

This will register the scheduler to run every minute.

3. Create a Cron Job

Now that the scheduler is registered, you can create a cron job. To do this, open the app/Console/Kernel.php file and add the following line to the schedule method:

$schedule->command(‘my:cron’)->dailyAt(’12:00′);

This will create a cron job that will run every day at 12:00.

4. Create the Command

Now that the cron job is registered, you need to create the command that will be executed when the cron job runs. To do this, run the following command in your terminal:

php artisan make:command MyCronCommand

This will create a new command class in the app/Console/Commands directory. Open the class and add the following code:

public function handle() { // Your code here }

This is the code that will be executed when the cron job runs.

5. Test the Cron Job

Now that the cron job is set up, you can test it to make sure it works. To do this, run the following command in your terminal:

php artisan schedule:run

This will run the cron job immediately. If everything is working correctly, you should see the output of your command in the terminal.

Congratulations! You have successfully set up a cron job in Laravel 10.
[ad_1]

In Laravel, a cron job refers to a scheduled task that runs automatically at specified intervals. It allows you to automate repetitive tasks in your web application, such as database backups, sending emails, generating reports, or any other task that needs to be executed periodically.

With Laravel’s built-in support for cron jobs, you can easily schedule and manage these tasks within your application. By utilizing the underlying operating system’s cron daemon, Laravel provides a convenient way to define and handle cron jobs through a concise and expressive syntax.

So, in this tutorial, you will learn how to create and use the cron job command Laravel 10 apps for task scheduling.

Laravel 10 Cron Job Task Scheduling Example Tutorial

By using the following steps, you can create and use cron job for task scheduling in laravel 10 apps:

  • Step 1: Create Cron Job Class
  • Step 2: Define the Task
  • Step 3: Configure the Schedule and Register the Task
  • Step 4: Run the Scheduler
  • Step 5: Laravel Set CronJob on the Live Server

Step 1: Create Cron Job Class

First of all, navigate to your Laravel 10 app by executing the following command on terminal:

cd /Laravel 10 app

Then execute the following command on the terminal to create LogCron job class:

php artisan make:command LogCron --command=log:cron

Step 2: Define the Task

In this step, the LogCron.php file is located in the app/Console/Commands/ directory. And add the following code to it:

<?php
   
namespace App\Console\Commands;
   
use Illuminate\Console\Command;
   
class LogCron extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'log: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']);
        */
    }
}

Step 3: Configure the Schedule and Register the Task

In this step, register the above-created cron job class in the kernel.php file.

So, navigate to the app/Console directory and open Kernel.php. Then register the cron job command like the following:

<?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\LogCron::class,
    ];
     
    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        $schedule->command('log:cron')
                 ->everyMinute();
    }
     
    /**
     * Register the commands for the application.
     *
     * @return void
     */
    protected function commands()
    {
        $this->load(__DIR__.'/Commands');
     
        require base_path('routes/console.php');
    }
}

In the Kernel.php file you can schedule the task to be done when it will be the command execute(run).

You can see the following scheduler methods:

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

Step 4: Run the Scheduler

In this step, execute the following command on the terminal to run the scheduler:

php artisan schedule:run

Step 5: Laravel Set CronJob on the live server

If you want to schedule the task on the live server use the below command :

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

Conclusion

By leveraging Laravel’s cron job functionality, you can streamline your application’s workflow and automate routine tasks, improving efficiency and reliability. The built-in scheduler simplifies the process of defining and managing cron jobs within your Laravel application, allowing you to focus on developing your application’s core functionality.

Whether you need to perform periodic maintenance tasks, generate reports, or trigger background processes, Laravel’s cron job support provides a flexible and powerful solution to handle these requirements seamlessly within your web application.

Recommended Laravel Posts

Laravel 10 Joins Example Tutorial

[ad_2]

Jaspreet Singh Ghuman

Jaspreet Singh Ghuman

Jassweb.com/

Passionate Professional Blogger, Freelancer, WordPress Enthusiast, Digital Marketer, Web Developer, Server Operator, Networking Expert. Empowering online presence with diverse skills.

jassweb logo

Jassweb always keeps its services up-to-date with the latest trends in the market, providing its customers all over the world with high-end and easily extensible internet, intranet, and extranet products.

GSTIN is 03EGRPS4248R1ZD.

Contact
Jassweb, Rai Chak, Punjab, India. 143518
Item added to cart.
0 items - 0.00