Cron Job

Create New Command

we need to create our custom command. custom command will execute with task scheduling scron job

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

File name : 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!');
}
}

Register as Task Scheduler

we need to define our commands on Kernel.php file with time when you want to run your command like as bellow functions:

File name : Kernel.php

>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

File name : index.php

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');
}
}

Run Scheduler Command For Test

php artisan schedule:run

Output :-

After run above command, you can check log file where we already print some text. so open you your log file it looks like as bellow:

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!

At last you can manage this command on scheduling task, you have to add a single entry to your server’s crontab file:


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





Previous Next


Trending Tutorials




Review & Rating

0.0 / 5

0 Review

5
(0)

4
(0)

3
(0)

2
(0)

1
(0)

Write Review Here


Ittutorial