A brand new feature coming 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 artisan schedule:run
and have it scheduled every minute.
Please Note: Because v5 is still in alpha this information could change before the official release.
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/Commands” directory.
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.
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.
Laravel 5 – Scheduler is a post from Laravel News.