Laravel 调度调用控制器

2022-01-03 00:00:00 cron taskscheduler php laravel laravel-5

我使用 Laravel 任务调度,但是当我从控制器调用某些方法时遇到问题.

I work with Laravel Task Scheduling, but I have a problem when I call some method from my controller.

protected function schedule(Schedule $schedule)
{
    $schedule->call('UserController@deleteInactiveUsers')->everyMinute();
    //$schedule->call('AppHttpControllersUserController@deleteInactiveUsers')->everyMinute();
}

当我使用未注释的行调用时,出现此错误:

When I call with uncommented line i get this error:

[ReflectionException]
Class RecurrenceInvoiceController does not exist

然后我插入完全限定的命名空间路径,然后出现此错误:

and then I insert fully qualified namespace path and then I get this error:

[PDOException] SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

还有

[ErrorException] PDO::__construct(): php_network_getaddresses: getaddrinfo failed: Name or service not known 

问题出在哪里?从 Laravel 任务调度中从控制器调用方法哪种方式是正确的.

Where is the problem? Which way is correct to call method from Controller from Laravel Task Scheduling.

推荐答案

几个月前我遇到了同样的问题,直到我能解决它.我使用 laravel 5.2,内核以这种方式调用我的驱动程序:

I stumbled months ago with the same problem, until I could fix it. I use laravel 5.2 and the kernel call my drivers this way:

$schedule->call('AppHttpControllersMyController@MyAction')->everyMinute();

我希望这会帮助其他人;)

I hope this will help someone else ;)

相关文章