RabbitTemplate收到并重新排队

时间:2014-09-16 18:41:22

标签: spring spring-amqp

我想从队列中接收消息并立即将它们出列,实际上我想模仿rabbitMQ管理控制台的行为,它可以接收消息并重新排队。

所以我的问题是如何做到这一点?起初我试图克隆消息并重新发送它们,但似乎rabbitTemplate无法将消息直接发送到队列并将它们发送到交换机不是一种选择,因为它可能是多个队列将再次收到该消息。

然后我开始认为我可以收到一条消息然后以某种方式NACK它以便它最终回到队列中。唯一的问题是我应该怎么做?

1 个答案:

答案 0 :(得分:2)

我认为你可以通过basicReject来实现这一目标:

public class MyListener implements ChannelAwareMessageListener {

   public void onMessage(Message message, Channel channel) throws Exception {
        //Do something with message
        channel.basicReject(message.getMessageProperties().getDeliveryTag(), true);
   }

}