代碼中設置
@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**