我安装了Laravel 5.5,并且正在尝试使调度程序运行。我正在运行以下cron作业,并且工作正常。
* * * * * php /var/www/html/project1/artisan schedule:run >> /var/www/html/project1/schedule.log
cron作业正在输出到日志文件,并且在cron中得到的结果与从命令行运行artisan schedule:run时得到的结果相同。结果始终是相同的,并且说没有计划的命令可以运行。当作业运行并且我得到输出时,问题似乎与cron无关。
我配置了简单的artisan inspire命令以在Laravel调度功能中运行。我可以使用php artisan inspire在命令行上运行inspire命令,它可以正常工作。我了解有关时区的所有文章,但这不是时区问题,该命令根本不会运行。我也没有使用withoutOverlapping(),所以这不是我的问题。因此,我每分钟运行一次cron作业以运行laravel计划,并且确实输出到我的日志中,这表明cron和Laravel正在通信。我认为问题一定是Laravel认为没有需要执行的命令。我不知道如何进一步调试它,所以我们将不胜感激。
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
protected $commands = [
//
];
protected function schedule(Schedule $schedule)
{
$schedule->command('inspire')
->everyMinute();
}
protected function commands()
{
require base_path('routes/console.php');
}
}