我在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->duevents($this->app),我会得到一个包含事件inspire和trustpilot:send的列表。
我试图在/vendor/laravel/framework/src/illuming/console/scheduling/scheduleruncommand.php中转储duevents列表,但这里的列表是空的?是吗?
/**
 * 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;
        }
.....

以前有人经历过吗?

最佳答案

我得到了它!
在应用程序的引导命令中,我运行了以下命令:

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

它重写旧的schedueler实例,这就是duevent列表为空的原因。
我移除了线路,然后开始工作:)

关于php - Laravel Scheduler未运行命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57079431/

10-13 09:48