我想从队列中接收消息并立即将它们出列,实际上我想模仿rabbitMQ管理控制台的行为,它可以接收消息并重新排队。
所以我的问题是如何做到这一点?起初我试图克隆消息并重新发送它们,但似乎rabbitTemplate无法将消息直接发送到队列并将它们发送到交换机不是一种选择,因为它可能是多个队列将再次收到该消息。
然后我开始认为我可以收到一条消息然后以某种方式NACK它以便它最终回到队列中。唯一的问题是我应该怎么做?
答案 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);
}
}