Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring RabbitTemplate接收和重新请求_Spring_Spring Amqp - Fatal编程技术网

Spring RabbitTemplate接收和重新请求

Spring RabbitTemplate接收和重新请求,spring,spring-amqp,Spring,Spring Amqp,我希望从队列中接收消息并立即将其排出队列,事实上,我希望模拟rabbitMQ管理控制台的行为,该控制台可以接收消息并重新查询它 所以我的问题是如何做到这一点?起初,我试图克隆消息并重新发送它们,但rabbitTemplate似乎无法直接将消息发送到队列,并且无法将消息发送到exchange,因为可能会有多个队列再次接收消息 然后我开始想,我可以收到一条消息,然后不知何故对它进行NACK处理,这样它就会回到队列中。唯一的问题是我应该如何做到这一点?我认为您可以通过basicrject实现这一点:

我希望从队列中接收消息并立即将其排出队列,事实上,我希望模拟rabbitMQ管理控制台的行为,该控制台可以接收消息并重新查询它

所以我的问题是如何做到这一点?起初,我试图克隆消息并重新发送它们,但rabbitTemplate似乎无法直接将消息发送到队列,并且无法将消息发送到exchange,因为可能会有多个队列再次接收消息


然后我开始想,我可以收到一条消息,然后不知何故对它进行NACK处理,这样它就会回到队列中。唯一的问题是我应该如何做到这一点?

我认为您可以通过
basicrject
实现这一点:

public class MyListener implements ChannelAwareMessageListener {

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

}

那么你想将消息从一个队列路由到另一个队列?不@Zarathustra。我想从队列中获取消息,然后立即将其放回队列。很像兔子管理GUI所做的。这就是我最终所做的。泰铢response@Artem,但您的解决方案使用侦听器。我有一个类似的问题,我希望消费和重新收费是一个单一的行动,而不是重复的听众。这样,用户可以单击按钮并看到队列中的消息,但队列不会丢失它们。就像在兔子管理界面中一样。请看这里的答案:。是的,是我创建了这个:-)