我正在尝试从 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/