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: Laravel Tutorials / Scheduler