我在Spring AMQP中使用RabbitMQ。我想向MQ发送一些消息然后获取这个消息(通过ID或其他东西)。
现在我有一个监听器,它接收发送给MQ的每条消息:
val latch = CountDownLatch(1)
@RabbitListener(queues = arrayOf(RabbitMqConfig.QUEUE_NAME))
fun receiveMessage(message: Message) {
logger.info("Received message with body = ${message.body}")
latch.countDown()
}
但是如何通过id获取特定消息?我已经读过关于correlationId但是RabbitTemplate类中没有方法可以通过correlationId接收。
答案 0 :(得分:0)
还有AsyncRabbitTemplate
在调用ListenableFuture<?>
方法时返回sendAndReceive
。
收到异步回复后,您可以将状态存储在其余控制器(或数据库)中,用户可以查询状态。