Laravel Scheduler

Tutorials

November 20th, 2014

Laravel Scheduler

A brand new feature in Laravel 5 is an Artisan scheduler. This is designed to simplify tasks that need to be scheduled. All that is required is setting up one cron job that calls php artisan schedule:run and have it run every minute.

Once your cron is setup, you can schedule any task to run in a concise and friendly manner. It takes the pain out of having to remember cron scheduling and is really simple. These schedules are created inside your “app/Console//Kernel.php” file.

Here is an example of a fictional task to clear the cache every hour:

$schedule->command('cache:clear')
->hourly()
->sendOutputTo($filePath)
->emailOutputTo('john@doe.com');

It doesn’t end there. You can also call class methods:

$schedule->call('SomeClass@method')->dailyAt('10:00');

Or use a closure:

$schedule->call(function(){
//..
})->everyThirtyMinutes();

And even terminal commands:

$schedule->terminal('gulp task')->fridays()->when(function(){
return true;
});

Laravel has always had developers in mind when creating new features and this one is no different. Take a look at the different scheduling methods available:

  • ->hourly()
  • ->daily()
  • ->at($time) // 24 hour time
  • ->dailyAt($time)
  • ->twiceDaily()
  • ->weekdays()
  • ->mondays()
  • ->tuesdays()
  • ->wednesdays()
  • ->thursdays()
  • ->fridays()
  • ->saturdays()
  • ->sundays()
  • ->weekly()
  • ->weeklyOn($day, $time)
  • ->monthly()
  • ->yearly()
  • ->everyFiveMinutes()
  • ->everyTenMinutes()
  • ->everyThirtyMinutes()
  • ->days() // Days of the week.

I love the syntax and there is even more which you can find in this file. If you want to dig deeper check out everything new in Laravel 5

This is another feature that is aimed at increasing your developer happiness. I think you’ll enjoy it and it will bring a lot of power to your apps.

Filed in:

Eric L. Barnes

Eric is the creator of Laravel News and has been covering Laravel since 2012.