Laravel Scheduling call controller

Viewed 32960

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('App\Http\Controllers\UserController@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

And

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

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

5 Answers

Directly put this in schedule function in kernel.php.

$schedule->call('App\Http\Controllers\YourController@function')->everyMinute();

This will run after every minute.

Note:

In localhost, you have to run it manually but on the server, you should try this command in your cronjob this will automatically call your controller function after every minute

php -d register_argc_argv=On /home/iflasity/public_html/foldername /artisan schedule:run > /dev/null 2>&1 

cd /home/iflasity/public_html/foldername && php artisan schedule:run /dev/null 2>&1 
Related