提问者:小点点

Laravel任务调度不运行命令


在app/console/kernel.php中,我将代码设置为

protected function schedule(Schedule $schedule)
    {
        $schedule->job(new Refresher);
    }

当我运行PHP artisan Schedule:run命令时,我会得到No scheduled commands are ready to rund.消息。 我不确定是否漏掉了什么,我尝试添加->everyminute(),但仍然不起作用。


共1个答案

匿名用户

您的代码正在创建排队作业。 队列应自行运行。 但是,如果您想自己启动队列,请使用以下命令:

php artisan queue:work --stop-when-empty

排队作业与计划任务一样,应该在作业方法之后链接一个频率选项。 将其添加到代码中:

protected function schedule(Schedule $schedule)
{
    $schedule->job(new Refresher)->everyMinute();
}

注意:复习类必须尊重特定的类结构。您可以在Laravel文档https://Laravel.com/docs/5.8/queues#class-structure中找到它(我不知道您正在使用的Laravel版本,所以我发布了5.8文档。只需将版本更改为您在URL中使用的版本即可)

如果您需要创建一个简单的任务,您可以简单地将代码更改为:

$schedule->call(new Refresher)->everyMinute();