【发布时间】:2021-12-02 14:37:18
【问题描述】:
我们正在使用 Symfony Messenger,并且有这些传输:
framework:
messenger:
failure_transport: failed
transports:
failed:
dsn: 'doctrine://default?queue_name=failed'
options:
table_name: 'MessengerMessages'
async:
dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
retry_strategy:
max_retries: 3
delay: 5000
multiplier: 2
max_delay: 0
asyncLowPriority:
dsn: '%env(MESSENGER_TRANSPORT_DSN)%_low_priority'
retry_strategy:
max_retries: 5
delay: 3600000
multiplier: 2
max_delay: 0
sync: 'sync://'
当我们向async队列发送消息,并且最后一次重试失败并出现异常时,异常被记录到MessengerMessages表中,并且异常冒泡(在我们的例子中是Sentry) .这就是我们想要的。
然而,当我们向asyncLowPriority 队列发送消息时,我们希望失败的消息发送到:
- 没有到达
failed传输 - 不让异常冒泡
基本上应该丢弃异常。
这可能吗?如何实现?
原因是我们使用这个队列异步下载图像,并且我们已经在命令处理程序的专用数据库表中记录了每个失败。
【问题讨论】:
标签: php symfony symfony-messenger