Schedule¶
Start the scheduler¶
Add the following command as a cron job
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
Define a schedule¶
- In
App\Console\Kernel.php
protected function schedule(Schedule $schedule)
{
// Closures
$schedule->call(function () {
DB::table('recent_users')->delete();
})->daily();
// invokable objects
$schedule->call(new DeleteRecentUsers)->daily();
$schedule
-> command('cbh:dummyCommand')
-> everyFiveMinutes()
-> appendOutputTo ('/my/logs/laravel_output.log');
}
Schedule a artisan command¶
1 2 3 4 5 | |
Schedule a queue jobs¶
1 | |
Schedule a shell command¶
1 | |
Frequency options¶
-
->cron('* * * * *')Cron -
Minute
->everyXMinute[s]()- Every X minutes \(X \in {1,2,3,4,5,10,15,30}\)
- e.g.
->everyMinute(),->everyFiveMinutes()
-Hour
- ->hourly()
- every hour
- ->hourlyAt(X)
- Every hour at X minutes
- ->everyXHours()
- Every X hours \(X \in {2, 3, 4, 6}\)
-
Day
->daily()- Daily at midnight
->dailyAt('AA:BB')- Daily at AA:BB
->twiceDaily(1, 13);- Daily at 1:00 & 13:00
-
Week
->weekly()- Every Sunday at 0:00
->weeklyOn(1, '8:00')- Every X day at Time
-
Month
->monthly()- Eveny first day (0:00) of the month
->monthlyOn(4, '15:00')- Every 4th day of the month (15:00)
->twiceMonthly(1, 16, '13:00')- Every month on the 1st and 16th at 13:00
->lastDayOfMonth('15:00');- The last day of the month at 15:00
-
Year
->yearly();->yearlyOn(6, 1, '17:00');
-
Other
->timezone('Asia/Taipei')Timezone