首页 > 解决方案 > DeliverCallback deliverCallback = (consumerTag, delivery) 函数没有被调用

问题描述

我正在尝试从 rabbitmq 队列中检索响应,在第一次使用相同的代码时,我能够正确检索响应,但是每当我第二次或第三次运行它时,它都不会调用delivercallback我试图检索的函数响应

DeliverCallback deliverCallback = (consumerTag, delivery) -> {
    String message = new String(delivery.getBody(), "UTF-8");

    System.out.println(" [x] Received '" + message + "'");

};
boolean autoAck = true; // acknowledgment is covered below
channel.basicConsume(QUEUE_NAME, autoAck, deliverCallback, consumerTag -> { });

预期:应打印 DeliverCallback lambda 表达式中的响应。实际: DeliverCallback lambda 表达式没有被调用,这就是为什么我无法从 rabbitmq 队列中检索响应

标签: javarabbitmq-exchange

解决方案


发回确认会从队列中删除消息,因此当消费者应用程序被第二次和第三次触发时,该消息是不可检索的。


推荐阅读