Laravel Планировщик на Windows - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь настроить планировщик для запуска команды, которая будет отправлять электронные письма каждый день в один и тот же час.

Когда я запускаю команду, все работает нормально и электронные письма отправляются, но я могу ' t заставить его работать с планировщиком.

Если я запускаю php artisan schedule:run, я получаю это Running scheduled command: "C:\wamp64\bin\php\php7.2.18\php.exe" "artisan" envoiEmailRappel > "NUL" 2>&1, но ничего не происходит.

Я уже искал в Интернете и пытался настроить с помощью windows планировщик задач, но кажется, что я не могу заставить его работать.

Внутри моего ядра. php для планировщика

protected $commands = [
    'App\Console\Commands\envoiEmailRappel'
];

protected function schedule(Schedule $schedule)
{
     $schedule->command('envoiEmailRappel')->everyMinute();
}

Затем я создал новую задачу с помощью диспетчера задач, Я добавил триггер, который запускается каждый день в нужное время, и создал такое действие Program / Script: C:\wamp64\bin\php\php7.2.18\php.exe и аргументы: C:\wamp64\www\tfeERP\artisan schedule:run

Но когда я достигну установленного для триггера времени, или если я выполнить его вручную, ничего не происходит Я не уверен, почему?

Небольшая помощь была бы очень признательна,

Спасибо!

редактировать:

Мне удалось создать задачу, запускающую этот bat-файл. Я вижу, что он выполняется, но ничего не происходит (я не получаю электронные письма на mailtrap).

cd c:\wamp64\www\tfeERP
C:\wamp64\bin\php\php7.2.18\php.exe artisan scheduler:run>> NUL 2>&1

Код команды:

    /**
 * The name and signature of the console command.
 *
 * @var string
 */
protected $signature = 'command:envoiEmailRappel';
private $rdv;

/**
 * The console command description.
 *
 * @var string
 */
protected $description = 'Command description';

/**
 * Create a new command instance.
 *
 * @return void
 */
public function __construct()
{
    parent::__construct();
    $this->rdv = new Rdv();
}

/**
 * Execute the console command.
 *
 * @return mixed
 */
public function handle()
{

    $rdvs = $this->rdv->todayRdv(Carbon::now()->format('d/m/Y'));

    foreach ($rdvs as $rdv) {

        $client = Client::findOrFail($rdv->animal->client->id);
        $email = $client->email_client;
        $animal = Animal::findOrFail($rdv->animal_id);
        $date = Carbon::parse($rdv->date_debut_rdv)->format('h:i');

        Mail::to($email)->send(new envoiEmailRappelMail($client, $animal, $date));

    }

    echo "emails sent";

}
...