【发布时间】:2019-08-29 20:06:29
【问题描述】:
我正在尝试读取不是通过 Symfony Messenger 发送的排队消息(在 RabbitMQ 中)。 Messenger似乎添加了一些标题,例如
headers:
type: App\Message\Transaction
但是在读取外部消息的时候,这个header是不存在的。
那么,有没有办法告诉 Messenger 队列 A 中的每条消息都必须被视为消息类型 Transaction ?
我今天拥有的是:
framework:
messenger:
transports:
# Uncomment the following line to enable a transport named "amqp"
amqp:
dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
options:
exchange:
name: messages
type: direct
queue:
name: queue_messages
routing:
# Route your messages to the transports
'App\Message\Transaction': amqp
我想补充的是:
routing:
# Route your messages to the transports
amqp: 'App\Message\Transaction'
【问题讨论】:
-
这不是真正的解决方案,但如果您可以控制消息创建,则可以将标头
type与 FQCN 作为值。我也希望有一个更好的解决方案,比如在您的帖子中描述。 -
我不够清楚。问题是,我无法控制消息的创建,我只知道将在这个队列中发送什么。
-
同意,目前尚不清楚,实际上也不是可行的解决方案。会在symfony slack上询问是否可以实现这样的配置或工厂,我回复你。
标签: symfony rabbitmq symfony-messenger