laravel中的定時任務
阿新 • • 發佈:2018-11-08
首先不可避免要是用linux定時任務
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
然後就在laravel中進行操作
檔案路徑app/Console/Kernel.php
<?php
namespace App\Console;
use DB;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel{
/**
* 應用提供的Artisan命令
*
* @var array
*/
protected $commands = [
//
];
/**
* 定義應用的命令排程
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
* @translator laravelacademy.org
*/
protected function schedule(Schedule $schedule)
{
$schedule->call(function () {
DB::table('recent_users')->delete();
})->daily();
}
}
下面幾種常見的排程方式
$schedule->call(function () {
// 每週星期一13:00執行一次...
})->weekly()->mondays()->at('13:00');
// 工作日的上午8點到下午5點每小時執行...
$schedule->command('foo')
->weekdays()
->hourly()
->timezone('America/Chicago')
->between('8:00', '17:00');