Laravel Scheduling call controller

戏子无情 提交于 2019-12-04 01:44:37
Jennifer Miranda Beuses

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('App\Http\Controllers\MyController@MyAction')->everyMinute();

I hope this will help someone else ;)

For me, the first error looks like you need to run composer update, then composer dump-autoload.

If it works you will also get the second error, the 2002 error meaning is:

Can't connect to local MySQL server through socket" (see (Client Error Codes and Messages in MySQL docs).

You need to set your database configuration in your .env file

Directly put this in schedule function in kernel.php file

$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

Also now I test with more simple function to insert new currency in database. Here is code:

public function handle()
    {
        $currency                = new Currency();
        $currency->currency_name = 'EUR';
        $currency->save();

        $this->info('New currency is successfully generated!');
    }

This function is from laravel/app/Console/Commands. I call from Kernel > schedule(). Not work.

When I insert simple log write to handle() function like:

File::put(base_path() . '/storage/logs/test_logs.txt', 'Test log ' . Carbon::now()->format('Y-m-d H:i:s') . PHP_EOL);

this works. But when I try to create new object from Models and save into db -> this not work.

OK. I solved this problem. The problem was with Docker Cron container. Cron container was not linked with MySQL container. Thanks for all answers.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!