Symfony проблема crontab - PullRequest
       6

Symfony проблема crontab

1 голос
/ 04 февраля 2020

Я разрабатываю проект Symfony (Symfony 4), и у меня есть команда, которая позволяет мне отправлять электронную почту. Когда я использую свой терминал на локальном (php bin/console app:end-training-email), команда работает нормально. Теперь я хочу поместить эту команду в crontab на VPS OVH. Моя команда также работает, когда я использую терминал на VPS.

Когда я пытаюсь поместить этот файл

* * * * * root /usr/local/bin/php /var/www/bin/console app:end-training-email >> /tmp/log7.cron 

в /etc/crontab, у меня ничего не получается. Однако, когда я ставлю ту же строку, но с помощью команды

cache:clear, она работает.

Вот мой метод команды в Symfony:

<?php
namespace App\Command;
use App\Repository\CustomerRepository;
use App\Service\Mailer;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
/**
* Class EndTrainingEmailCommand
* @package App\Command
*/
class EndTrainingEmailCommand extends Command
{
protected static $defaultName = 'app:end-training-email';
private $customerRepository;
/**
* @var Mailer
*/
private $mailer;
public function __construct(CustomerRepository $customerRepository, Mailer $mailer)
{
$this->customerRepository = $customerRepository;
$this->mailer = $mailer;
parent::__construct(null);
}
protected function configure()
{
$this
->setDescription('Send an email at the end of the training')
;
}

protected function execute(InputInterface $input, OutputInterface $output): int
{
$io = new SymfonyStyle($input, $output);
$customers = $this->customerRepository->findAllTerminatedTraining();
if (!$customers) {
$io->error('No customers found !');
} else {
$io->success('Emails of end training were sent to customers !');
}
$io->progressStart(count($customers));
foreach ($customers as $customer) {
$io->progressAdvance();
$from = 'wild.developers.team@gmail.comnt';
$to = $customer->getEmail();
$viewCustomer = 'email/command/endTraining.html.twig';
$subjectCustomer = 'You enjoyed your last training? Let us know!';
$this->mailer->sendContactEmail($from, $to, $customer, $subjectCustomer,
$viewCustomer);
}
$io->progressFinish();
return 0;
}
}

Я надеваю Я не понимаю, почему она не работает с моей командой, хотя она работает с кешем: clear Большое спасибо за ваши ответы!

...