java - 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 队列中检索响应
解决方案
发回确认会从队列中删除消息,因此当消费者应用程序被第二次和第三次触发时,该消息是不可检索的。
推荐阅读
- spring-boot - 如果单词包含点,则在数据库中添加空格
- scala - 遍历列表时处理 Future[Option[T]]
- javascript - 我如何在对象上添加新键
- python - 生成器的 itertools.tee 的隐式内存消耗
- java - 使用 GSON 将 JSON 反序列化为 Java 对象时遇到问题
- c++ - 为什么我不能在 rapsberrypi4 上使用 AndroidNDK 的预构建库?
- java - 重用 PoolingHttpClientConnectionManager
- ios - 在条带支付表配置中出错 - iOS
- r - 使用 {gtsummary},我如何格式化预先计算的摘要的数据帧?
- android-studio - 我有一个单击按钮,可以从 URL 设置锁定和主屏幕的壁纸,但它不适用于 API 级别 28 或更低级别的 lockScreen