Laravel 5时间表问题-PHP Artisan Schedule:运行正常,但实际时间表不起作用

时间:2019-01-07 16:10:04

标签: php laravel laravel-5 cron

在Apache2上运行的Laravel 5.7版,PHP 7.2版

我的crontab中的命令如下:

* * * * * php /var/www/dev-site/artisan schedule:run >> /dev/null 2>&1

我的内核如下:

<?php

namespace App\Console;

use App\Console\Commands\ImportInvoiceBatch;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    protected $commands = [
        ImportInvoiceBatch::class,
    ];

    protected function schedule(Schedule $schedule)
    {
        $schedule->command('import:invoice-batch')->everyMinute()->withoutOverlapping();
    }

    protected function commands()
    {
        $this->load(__DIR__.'/Commands');

        require base_path('routes/console.php');
    }
}

将我定义的命令运行为“ php artisan import:invoice-batch”可以正常运行,甚至运行“ php artisan schedule:run”可以识别所有内容并按预期运行任务,但是调度器并没有按时执行正在发生。我有什么想念的吗?预先感谢。

1 个答案:

答案 0 :(得分:0)

在运行artisan之前尝试将工作目录更改为应用程序根目录:

* * * * * cd /var/www/dev-site/artisan && php artisan schedule:run >> /dev/null 2>&1

您也可以尝试添加调试输出路径:

* * * * * cd /var/www/dev-site/artisan && php artisan schedule:run >> /var/log/crontab/artisan.log 2>&1