如何从RabbitTemplate的不同Channel获取消息?

时间:2014-07-03 11:30:38

标签: rabbitmq amqp spring-amqp spring-rabbit

假设我有一个rabbitTemplate实例,我调用rabbitTemplate.send(Message)向RabbitMQ服务器发布消息。

我想做的是: 1.从发布者的角度来看,如何确保RabbitMQ收到消息? 2.在消费者方面,我使用相同的rabbitTemplate在线程中接收消息,我想在另一个线程中手动确认消息。

有没有办法通过RabbitTemplate手动回复消息?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

  1. RabbitMQ是异步的,所以没有办法等待"使消息在经纪人中得到保障;您可以启用发布者确认以确认消息已传递到队列。请参阅documentation for more information

  2. 使用其中一种receive*()方法时,您无法手动确认消息。您必须使用execute()方法下拉到本机API;在回调中,执行channel.basicGet(queue, false)以接收消息,然后channel.basicAck(deliveryTag)