当前位置:   article > 正文

使用@RabbitListener注解接受消息时如何进行手动ack_@rabbitlistener ack

@rabbitlistener ack

由于进行手动ack需要调用当前channel的basicAck方法,所以在注解注解的处理方法的入参中需要加入channel入参以及deleveryTag入参。下面看一个示例

/**
* @param message :解码后的消息
* @param delicveryTag :使用@Header接口获取messageProperties中的DELIVERY_TAG属性。
* @param channel : 接受消息所使用的信道
*/
@RabbitListener(queues = "sys.topic.login.message")
    public void process1(@Payload String message, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag, Channel channel)throws Exception {
        if(message.equals("1")){
            int i = 1/0;
        }
        channel.basicAck(deliveryTag,false);
        System.out.print("这里是接收者1答应消息: ");
        System.out.println("SYS_TOPIC_ORDER_CALCULATE_ZZ_FEE process1  : " + message);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/127120
推荐阅读
相关标签
  

闽ICP备14008679号