提交 5fbdbb68 编写于 作者: 伟伟权

105. MessageBus dispatch message and sync transport

上级 ade40b45
......@@ -7,8 +7,8 @@ framework:
# https://symfony.com/doc/current/messenger.html#transport-configuration
# async: '%env(MESSENGER_TRANSPORT_DSN)%'
# failed: 'doctrine://default?queue_name=failed'
# sync: 'sync://'
sync: 'sync://'
routing:
# Route your messages to the transports
# 'App\Message\YourMessage': async
'App\Message\SendEmailMessage': sync
......@@ -3,27 +3,39 @@
namespace App\EventSubscriber;
use App\Entity\Post;
use App\Message\SendEmailMessage;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use \EasyCorp\Bundle\EasyAdminBundle\Event\AfterEntityPersistedEvent;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Messenger\MessageBusInterface;
use Symfony\Component\Mime\Email;
class SendEmailSubscrberSubscriber implements EventSubscriberInterface
{
// /**
// * @var ParameterBagInterface
// */
// private ParameterBagInterface $parameterBag;
// /**
// * @var MailerInterface
// */
// private MailerInterface $mailer;
//
// public function __construct(ParameterBagInterface $parameterBag, MailerInterface $mailer)
// {
// $this->parameterBag = $parameterBag;
// $this->mailer = $mailer;
// }
/**
* @var ParameterBagInterface
*/
private ParameterBagInterface $parameterBag;
/**
* @var MailerInterface
* @var MessageBusInterface
*/
private MailerInterface $mailer;
private MessageBusInterface $messageBus;
public function __construct(ParameterBagInterface $parameterBag, MailerInterface $mailer)
public function __construct(MessageBusInterface $messageBus)
{
$this->parameterBag = $parameterBag;
$this->mailer = $mailer;
$this->messageBus = $messageBus;
}
public function onAfterEntityPersistedEvent(AfterEntityPersistedEvent $event)
......@@ -31,13 +43,15 @@ class SendEmailSubscrberSubscriber implements EventSubscriberInterface
$post = $event->getEntityInstance();
if ($post instanceof Post)
{
$email = (new Email())
->from($this->parameterBag->get('send_email'))
->to($this->parameterBag->get('editor_email'), $this->parameterBag->get('checker_email'))
->subject('有新的文章<'.$post->getTitle().'>发布了,请检查。')
->text('有新的文章<'.$post->getTitle().'>发布了,请检查。');
sleep(10);
$this->mailer->send($email);
// $email = (new Email())
// ->from($this->parameterBag->get('send_email'))
// ->to($this->parameterBag->get('editor_email'), $this->parameterBag->get('checker_email'))
// ->subject('有新的文章<'.$post->getTitle().'>发布了,请检查。')
// ->text('有新的文章<'.$post->getTitle().'>发布了,请检查。');
//sleep(10);
// $this->mailer->send($email);
$message = new SendEmailMessage($post->getId());
$this->messageBus->dispatch($message);
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册