如何在具有多个队列的RabbitMQ中调用特定队列的特定方法?

时间:2015-08-10 03:20:31

标签: java rabbitmq amqp spring-amqp

我在rabbitMQ中有2个队列,queueAqueueB

queueA和/或queueB填充数据时(通过convertAndSend()方法),它会自动调用MessageListener.onMessage()方法(CMIIW)。

所以,我的问题是,当methodA()填满时,如何拨打queueA,并在填充methodB()时致电queueB

不同队列的不同方法

1 个答案:

答案 0 :(得分:1)

请参阅the documentation

您可以使用两个侦听器容器(每个队列一个)并使用配置为MessageListenerAdapter为每个队列调用适当的方法(请参阅setDefaultListenerMethod())。

您可以使用单个侦听器容器来侦听这两个队列,并使用子类MessageListenerAdapter并实现getListenerMethodName()来根据消息确定要调用的方法。从Spring AMQP 1.4.2版开始,

中提供了收到消息的队列
originalMessage.getMessageProperties().get(AmqpHeaders.CONSUMER_QUEUE)