Laravel Scheduler未运行命令

时间:2019-07-17 15:28:15

标签: php laravel laravel-5 scheduled-tasks laravel-5.7

我在 app / Console /

中的 Kernel.php 中安排了这些命令
protected function schedule(Schedule $schedule)
{
    $schedule->command('inspire')->everyMinute();
    $schedule->command("trustpilot:send")->everyMinute();
    $schedule->command("run:status")->everyFiveMinutes();

}

当我运行 php artisan schedule:run 时,我收到此消息:

  

没有计划的命令可以运行。

这很奇怪,因为如果我转储 $ schedule-> dueEvents($ this-> app),我会得到一个包含事件启发的列表trustpilot:发送

我尝试将 dueEvents 列表转储到 /vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php 中,但在此列表中是空的??

/**
 * Execute the console command.
 *
 * @return void
 */
public function handle()
{
    dd($this->schedule->dueEvents($this->laravel)); <---- EMPTY?
    foreach ($this->schedule->dueEvents($this->laravel) as $event) {

        if (! $event->filtersPass($this->laravel)) {
            continue;
        }
.....

以前有没有人经历过?

1 个答案:

答案 0 :(得分:0)

我明白了!

在我的应用程序的启动命令中,我执行了以下操作:

Artisan::call('....');

它会覆盖旧的调度程序实例,这就是为什么dueEvent列表为空的原因。

我删除了行,然后工作了:)