ConfirmListener为何没有消息确认的时候,也会触发handleAck方法的执行

weixin_38113341 2017-07-23 11:36:13
public class Test { public static void main( String[] args ) throws Exception { ConnectionFactory factory = new ConnectionFactory(); factory.setHost("127.0.0.1"); factory.setPort(5672); factory.setUsername("guest"); factory.setPassword("guest"); factory.setVirtualHost("/"); Connection conn = factory.newConnection(); Channel channel = conn.createChannel(); channel.confirmSelect(); channel.addConfirmListener(new ConfirmListener() { public void handleAck(long deliveryTag, boolean multiple) throws IOException { System.out.println("=============handleAck============"); System.out.println("deliveryTag : " + deliveryTag); } public void handleNack(long deliveryTag, boolean multiple) throws IOException { System.out.println("=============handleNack============"); System.out.println("deliveryTag : " + deliveryTag); } }); BasicProperties props = new BasicProperties.Builder().deliveryMode(2).contentEncoding("UTF-8").build(); channel.basicPublish("", "test.queue", props, "test".getBytes()); TimeUnit.SECONDS.sleep(10); channel.close(); conn.close(); } } 这段代码,是往test.queue上发送一个消息。当前test.queue上没有任何消费者。 但是为啥执行这段代码,就会触发handleAck方法的执行呢?  又没有消费者去确认消息,怎么会触发handleAck方法的执行呢?  求答疑。 RabbitMQ版本为3.6.10
...全文
47 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

435

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧