【发布时间】:2017-11-01 16:50:09
【问题描述】:
我希望能够使用 RabbitListener 注释将一个队列绑定到多个交换,但到目前为止还没有成功。
我现在拥有的是:
@RabbitListener(bindings = @QueueBinding(value =
@Queue(
value = "${subscriber.queueInbound}", durable = "true", autoDelete = "false", exclusive = "false"),
exchange = @Exchange(value = "all", durable = "true")
),
containerFactory = "subscriberRabbitListenerContainerFactory"
)
public void onMessage(Message message, Channel channel) {
// do something
}
这将在启动/重新连接时自动创建定义为subscriber.queueInbound 的队列并将此队列绑定到默认的all 交换。
然后我有一个在后台运行的作业,它将正确配置此队列并将其绑定到需要为其配置的多个交换。
我正在寻找一种更优雅的方式来执行此操作,或者通过@RabbitListener 或以某种方式对其进行调整,以便在重新连接时让它在重新收听之前适当地配置队列。
最初我是通过 Beans 进行队列配置,但是如果我解决了 RabbitMQ 不可用,这会阻止应用程序启动,但随后会导致它启动并且不执行队列配置步骤。
【问题讨论】:
标签: rabbitmq spring-amqp spring-rabbit