我正在开发一个 Laravel 项目,并创建了一个带有签名“process:pending-reports”的命令。
当我使用:
php artisan process:pending-reports
运行此命令时,它会执行所需的操作,即脚本被执行。
我现在已将其添加到 app/Console/Kernel.php 文件内的 Schedule() 方法中,如下所示:
protected function schedule(Schedule $schedule)
{
$schedule->command('process:pending-reports')->everyFifteenMinutes();
}
当我使用以下命令检查详细信息时:
php artisan schedule:list
我再次得到预期的输出,例如:
*/15 * * * * php artisan process:pending-reports ................................................................................................... Next Due: 7 minutes from now
但是,一旦命令执行时间过去,它实际上并不会运行该命令。
我错过了什么?
Laravel Scheduler 必须添加到 crontab 中:
crontab -e
然后添加这样一行:
* * * * * cd /path/to/your/project && php artisan schedule:run >> /dev/null 2>&1