mercredi 12 février 2020

i could not run artisan schedule:run cron command at shared hosting

I want to achieve task scheduling in my laravel 5.8 project. For that, I have created a custom artisan command artisan send: credentials which send emails to specific users based on their status.

sendUserCredentials.php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use App\Mail\credentialsEmail;
use App\Models\userModel;
use Mail;

class sendUserCredentials extends Command
{

    protected $signature = 'send:credentials';


    protected $description = 'Credentials send Successfully!';


    public function __construct()
    {
        parent::__construct();
    }

    public function handle()
    {
       $users = userModel::select(["email","username","role","id"])->where("credentials","NO")->get();
       foreach ($users as $key => $user) {
           Mail::to($user->email)->send(new credentialsEmail($user));
           userModel::where("id",$user->id)->update(["credentials"=>"SEND"]);
       }

    }
}

I added this command in kernel.php so that I can run this command using the laravel task scheduler.

kernel.php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{

    protected $commands = [
        Commands\sendUserCredentials::class,
    ];

    protected function schedule(Schedule $schedule)
    {
        $schedule->command('send:credentials')
                 ->everyMinute();
    }

    protected function commands()
    {
        $this->load(__DIR__.'/Commands');

        require base_path('routes/console.php');
    }
}

so on my local server, everything works like a charm when I run this command php artisan schedule:run but on the shared server when I run scheduler using the cron command *****/path/to/project/artisan schedule:run >> /dev/null 2>&1 it gives me an error like this

local.ERROR: The Process class relies on proc_open, which is not available on your PHP installation. {"exception":"[object] (Symfony\\Component\\Process\\Exception\\LogicException(code: 0): The Process class relies on proc_open, which is not available on your PHP installation. at /home/codejupi/avas.codejupitor.com/vendor/symfony/process/Process.php:143)

BUT when I run the artisan command directly *****/path/to/project/artisan send:credentials >> /dev/null 2>&1 using the cron job then there is no error and emails send successfully!



from Newest questions tagged laravel-5 - Stack Overflow https://ift.tt/2Hh8wqv
via IFTTT

Aucun commentaire:

Enregistrer un commentaire