java - DeliverCallback deliverCallback = (consumerTag, delivery) 函数未被调用

标签 java rabbitmq-exchange

我正在尝试从 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 队列检索响应的原因

最佳答案

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

关于java - DeliverCallback deliverCallback = (consumerTag, delivery) 函数未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56897478/

相关文章:

java - 如何为多个部署平台维护相同的代码库

java.text.ParseException : Unparseable date: "11:00 PM, Sun 07 Oct 2018"

java - getX() 在 java.awt.Rectangle 中有私有(private)访问权限?

rabbitmq - 具有多个路由键的一次交换或在 RabbitMQ 中高效的多个交换

Rabbitmq绑定(bind)exchange到exchange

java - Rabbitmq header 交换和确认交付

javascript - 在nodejs上延迟消息rabbitmq

java - 在 if 语句中为方法调用正确的对象?

c# - RabbitMQ EventingBasicConsumer 丢失消息

java - 如何在 Swing 应用程序中创建 HttpServletRequest 实例