RabbitMq-进阶-04-Ack

RabbitMq-进阶-04-Ack,第1张

RabbitMq-进阶-04-Ack
1、1 Ack简介:
		确认。 表示消费端收到消息后的确认方式。
	有三种确认方式:
		自动确认:acknowledge="none"
		手动确认:acknowledge="manual"
		根据异常情况确认:acknowledge="auto"

2、1 设置消费者的Ack为手动处理
	    listener:
      		simple:
       		acknowledge-mode: manual


2、2 监听类:

@Component
public class RmListener {
    @RabbitListener(queues = "springboot_topic_queue")
    public void TopicQueueListener(Message msg,Channel channel) throws Exception {
        long deliveryTag = msg.getMessageProperties().getDeliveryTag();
        try {
            Thread.sleep(2000);
            // 1、接受转换的消息
            System.out.println(new String(msg.getBody()));
            // 2、业务逻辑处理
            // 手动异常
            // int i = 3 / 0;
            System.out.println("业务逻辑处理中-------------");
            // 3、手动签收
            
            channel.basicAck(deliveryTag,true);
        } catch (Exception e) {
            // 4、接受失败策略
            
            channel.basicNack(deliveryTag,true,true);
        }
    }
}

项目代码链接:https://github.com/Mbm7280/rabbitmq_demo

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5696454.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存