點擊上方“JavaEdge”,關注公衆號
connection = factory.newConnection();
final Channel channel = connection.createChannel();
channel.queueDeclare("隊列名", true, false, false, null);
//第二個參數設爲true爲自動應答,false爲手動ack
channel.basicConsume("隊列名", true, new DefaultConsumer(channel){
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
try {
Thread.sleep(10000);
System.out.println(new String(body, "UTF-8"));
//模擬異常
int i = 1/0;
//手動ack
//channel.basicAck(envelope.getDeliveryTag(), false);
} catch (Exception e) {
//重新放入隊列
//channel.basicNack(envelope.getDeliveryTag(), false, true);
//拋棄此條消息
//channel.basicNack(envelope.getDeliveryTag(), false, false);
e.printStackTrace();
}finally {
}
}
});
ack機制爲自動
手動ack應答(channel.basicAck方法)
這條消息重新放回隊列,重新消費
拋棄此條消息
目前交流羣已有 800+人,旨在促進技術交流,可關注公衆號添加筆者微信邀請進羣
喜歡文章,點個“在看、點贊、分享”素質三連支持一下~
本文分享自微信公衆號 - JavaEdge(Java-Edge)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。