手动确认时:
application.properties需要添加
spring.rabbitmq.listener.simple.acknowledge-mode=manual
确认ack
channel.basicAck(tag, false);
拒收发回rabbitmq
channel.basicReject(tag, true);
下面是整体代码
@RabbitListener(queues = queueName)
public void disposeSomething(@Header(AmqpHeaders.DELIVERY_TAG) long tag, @Header("key") String key, @Payload String msg, Channel channel){
System.out.println("-------------------------------------");
System.out.println(key);
System.out.println(msg);
try {
// channel.basicAck(tag, false);
channel.basicReject(tag, true);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("-------------------------------------");
}
如果这里不停的拒收,再放回队列中,就会出现这样的现象: