<?php
declare(strict_types=1);
namespace Novaway\CoreBundle\Messenger\Subscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Messenger\Event\WorkerMessageFailedEvent;
use Symfony\Contracts\Service\ResetInterface;
class MailerResetterSubscriber implements EventSubscriberInterface
{
/** @var ResetInterface */
protected $servicesResetter;
public function __construct(ResetInterface $servicesResetter)
{
$this->servicesResetter = $servicesResetter;
}
public function resetServices(): void
{
// reset services, allowing swiftmailer to send log mails
$this->servicesResetter->reset();
}
public static function getSubscribedEvents(): array
{
return [
WorkerMessageFailedEvent::class => ['resetServices', 10],
];
}
}