【发布时间】:2020-11-11 21:46:33
【问题描述】:
我正在使用 Symfony 4.2 并且有一条消息要通过 messenger 组件发送,这是一条应该通过几个渠道(例如 SMS 和电子邮件)发送的通知。我想知道如何使这些发件人独立(例如第一个通道失败并抛出异常) - 如何尝试通过第二个发件人独立发送?目前,当链中的一个发送者发生故障时,其余发送者无法尝试发送通知。
在发件人级别捕获异常似乎不是一个好的解决方案,因为返回信封会导致它将被标记为发送不正确的内容。
我已经开始为每个频道制作消息以保持 sentStamp 约定,但似乎应该是一条消息和几个频道监听一条消息(即使配置表明使用 senders 关键字):
routing:
'App\Messenger\Command\Notification\SendSomeInformation':
senders:
- App\Messenger\Sender\Notification\EmailSender
- App\Messenger\Sender\Notification\SmsSender
这类问题有什么好的方法吗?
【问题讨论】:
-
我不得不承认我不知道您可以为每种消息类型指定特定的发件人。在文档中也找不到它,但它看起来很整洁。我只是为此使用常规处理程序,但这种配置可能是有利的。
-
@yivi symfony.com/doc/4.2/messenger.html#routing 该段中的最后一个代码示例
-
呵呵,这些选项在较新版本的文档中不再可用,我想知道它们是否被删除了。如果您计划升级,请记住一些事情。
-
@yivi 好像可以symfony.com/doc/master/…
-
在第二个链接中,我没有看到像 4.2 版本中的示例。我错过了吗?
标签: symfony symfony4 symfony-messenger