代码中设置
@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**