代码中设置
@RabbitListener(queues = "direct1.demo1") public void consumer(@Payload MQMessage message1 , Message message, @Headers Map<String,Object> headers, Channel channel)throws IOException{ System.out.println("监听程序1开始执行"+message1.getMessage()); if(i>7){ System.out.println("重发"); i++; i=i>10?5:i; //重发,不会丢失队列 channel.basicNack((Long) headers.get(AmqpHeaders.DELIVERY_TAG),false,true); }else { System.out.println("已收到,消息出队列"); //ack确认接收消息完毕 i++; channel.basicAck((Long)headers.get(AmqpHeaders.DELIVERY_TAG),true); } }yml中设置
pring: rabbitmq: host: 47.102.113.11 username: xia password: 1235 virtual-host: /xiaoliu listener: direct: **acknowledge-mode: manual**