laravel中使用定時任務的幾點注意事項
在App\Console\Kernel;文件下注冊自己的任務
比如:
protected function schedule(Schedule $schedule) {
$schedule->command('backup:clean')->daily()->at('16:30');
$schedule->command('backup:run')->daily()->at('17:00');
}
有一點需要注意的是添加到schedule里的命令要在php aritsan list里可以找到才行,如果找不到的話需要在下面的數組里注冊
protected $commands = [
];
在cron里配置定時任務
cron -l 查看當前的任務
cron -e 編輯新的任務
使用cron -e,將下面的命令添加上
* * * * * php /your project full path /artisan schedule:run
比如我的
* * * * * php /home/yang/Sites/jindongjiaju/artisan schedule:run
我的php是添加到環境變量里面的,可以直接使用,如果沒有添加到全局變量,需要添加php的路徑
which is php
php -i
這兩條命令都可以查看php的路徑
添加完后,可以在命令行里執行下,看看配置的是否有錯誤,如果執行沒有報錯,說明配置成功了。
修改項目的timezone
需要將項目的timezone 修改成本地的timezone,這一點很重要
在config/app.php 找到timezone 字段
默認是
'timezone' => 'UTC',
修改成
'timezone' => 'Asia/Shanghai',