Laravel 5 task scheduling with cron job example – onlinecode

Laravel 5 task scheduling with cron job example – onlinecode

In this post we will give you information about Laravel 5 task scheduling with cron job example – onlinecode. Hear we will give you detail about Laravel 5 task scheduling with cron job example – onlinecodeAnd how to use it also give you demo for it if it is necessary.

Laravel 5 task scheduling with cron job example

If you want to execute scheduling jobs in specific time and specific interval then you can apply cron job which is a Unix command.

We can manage a task in the server that executes scripts which helps in sending daily/weekly reports from our website.

The main use of cron job is in cleaningup the databases, sending the emails, executing the time consuming tasks etc. We can simply delete files from the database with the help of Cron Job.

Cron job will only work on unix based machines. It consists of a configuration file called Crontable which is also known as Crontab.

This Cron tab is used to manage the scheduling and consists of different cron jobs and each of the cron job is associated with a specific task.


Generate A New Command Class :

First, we will generate our own custom commands by running following commands which will generate a class in the app/Console/Commands/ directory.

php artisan make:console CustomCommand

After running this command you will get a message ‘Console command created successfully.
‘ on your terminal and then it generate a class file at app/Console/Commands/CustomCommand.php with default signature but you can assign the terminal command name by using --command option.

php artisan make:console CustomCommand --command=custom:command

Whenever command will be executed in your terminal then handle method of command class is called so i will write a code to delete all inactive users in handle method.

  1. namespace AppConsoleCommands;
  2. use IlluminateConsoleCommand;
  3. use DB;
  4. class CustomCommand extends Command
  5. {
  6. /**
  7. * The name and signature of the console command.
  8. *
  9. * @var string
  10. */
  11. protected $signature='custom:command';
  12. /**
  13. * The console command description.
  14. *
  15. * @var string
  16. */
  17. protected $description='Delete all inactive users';
  18. /**
  19. * Create a new command instance.
  20. *
  21. * @return void
  22. */
  23. public function__construct()
  24. {
  25. parent::__construct();
  26. }
  27. /**
  28. * Execute the console command.
  29. *
  30. * @return mixed
  31. */
  32. public functionhandle()
  33. {
  34. DB::table('users')->where('active',)->delete();
  35. $this->info('All inactive users are deleted successfully!');
  36. }
  37. }
where('active', 0)->delete();
        $this->info('All inactive users are deleted successfully!');
    }
}

Now we have to register our new command with Artisan so that it will be available in terminal. For this we just need to add this command class name to commands array in Kernerl class that is available in app/Console/Kernel.php.


app/Console/Kernel.php

  1. namespace AppConsole;
  2. use IlluminateConsoleSchedulingSchedule;
  3. use IlluminateFoundationConsoleKernel as ConsoleKernel;
  4. class Kernel extends ConsoleKernel
  5. {
  6. /**
  7. * The Artisan commands provided by your application.
  8. *
  9. * @var array
  10. */
  11. protected $commands=[
  12. CommandsCustomCommand::class,
  13. ];
  14. /**
  15. * Define the application's command schedule.
  16. *
  17. * @param IlluminateConsoleSchedulingSchedule $schedule
  18. * @return void
  19. */
  20. protected functionschedule(Schedule $schedule)
  21. {
  22. $schedule->command('custom:command')->daily();
  23. }
  24. }
command('custom:command')->daily();
    }
}

If you want to see your command description in terminal then run following command :

$ php artisan list
  1. custom
  2. custom:command Delete all inactive users
custom
  custom:command      Delete all inactive users

Now you can run your command to delete all inactive users.

$ php artisan custom:command

All inactive users are deleted successfully!

As you notice i schedule the command on daily basis but there are number of schedule frequencies which you can assign to the tasks.

Schedule tasks hourly basis

  1. $schedule->command('custom:command')
  2. ->hourly();
$schedule->command('custom:command')
         ->hourly(); 

Schedule tasks on given time

  1. $schedule->command('custom:command')
  2. ->dailyAt('07:00');
$schedule->command('custom:command')
         ->dailyAt('07:00');

Schedule tasks weekly basis

  1. $schedule->command('custom:command')
  2. ->weekly();
$schedule->command('custom:command')
         ->weekly(); 


Schedule tasks monthly basis

  1. $schedule->command('custom:command')
  2. ->monthly();
$schedule->command('custom:command')
         ->monthly();

If you wan to start the scheduler itself then you will have to add one cron job on server using the crontab -e command.

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

Using this, Laravel command scheduler will be called by cron every minute.

You can use cron job to send birthday sms, email notification to user to activate their accounts etc.

Hope this code and post will helped you for implement Laravel 5 task scheduling with cron job example – onlinecode. if you need any help or any feedback give it in comment section or you have good idea about this post you can give it comment section. Your comment will help us for help you more and improve us. we will give you this type of more interesting post in featured also so, For more interesting post and code Keep reading our blogs

For More Info See :: laravel And github

Leave a Comment

Your email address will not be published. Required fields are marked *

9  +  1  =  

We're accepting well-written guest posts and this is a great opportunity to collaborate : Contact US