In this article, I’ll discuss an overview about Cron and then we’ll discuss, how to add or perform cron (Task scheduling) in Laravel.

Why we need to use cron job?

Because if you want to schedule your task like as, you want to send email automatically to users on daily morning or months or you want database log will be clear after week or months, therefore cron job will be needed to perform these scheduled tasks.

What is Cron?

Cron is basically a task scheduler, which perform the scheduled tasks at certain intervals. It typically automates system maintenance or administration though its general purpose nature makes it useful for things like downloading files from the interval and downloading email at regular intervals. For managing the schedule process cron uses a configuration file called crontab or cron table.

How to add Cron Job in Laravel.

Laravel command scheduler allows you to define your command schedule within Laravel itself. Basically your task schedule is defined in the “app/Console/Kernel.php” method. In this article, I will add a cron in Laravel and define a simple task to perform clear the data entries from the database table. Now, just follow these steps:

Step1: Install Laravel

Run the composer command: “composer create-project –prefer-dist laravel/laravel TaskSchedule”.

Step2: Setup Database Entries:

Run the artisan command: php artisan make:auth. This command will create authentication in your laravel project.

Next, create database and link with you Laravel project:
Create Database:

Open .env file and add Database entries like this:

run the migrate command: php artisan migrate. This will create tables in your database.

After migrate command database table look like this:

Next, open browser and navigate the browser “localhost:8000/register” add entries for users table in database like this:
Register User’s in user table:

Database user’s table look like this:

Step3: Defining Schedules:

Create Command
In this step, we create our custom command. This will execute with task scheduling. So, runs the artisan command: “php artisan make:command everyMinute”

Next, open the app/Console/Commands/everyMinute.php file and make some change in signature, description, and in handle() function like this:

Register on Task Scheduler

In this step, our task schedule is defined in the “app/Console/Kernel.php” file’s schedule method. So, open Kernel.php file and defined the task like this:

Now, you can check your own custom command created or not. So, run the command “php artisan list”. You will result like this:

Step4: Run Scheduler:

Finally, run the scheduler command and test your cron job. “php artisan schedule:run”

After running the scheduler, your data will be cleared from your database users table.

#Schedule Frequency Options:

There are a variety of schedules you may assign to your task:

Method Description
->cron(‘* * * * *’); Run the task on a custom Cron schedule
->->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(); 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 Monday 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(‘Asia/Kolkata’); Set the timezone