> 文章列表 > Rabbitmq消费者确认参数解析

Rabbitmq消费者确认参数解析

Rabbitmq消费者确认参数解析

    channel.basicReject(deliveryTag, true);

        basic.reject方法拒绝deliveryTag对应的消息,第二个参数是否requeue,true则重新入队列,否则丢弃或者进入死信队列。

该方法reject后,该消费者还是会消费到该条被reject的消息。

    channel.basicNack(deliveryTag, false, true);

        basic.nack方法为不确认deliveryTag对应的消息,第二个参数是否应用于多消息,第三个参数是否requeue,与basic.reject区别就是同时支持多个消息,可以nack该消费者先前接收未ack的所有消息。nack后的消息也会被自己消费到。

    channel.basicRecover(true);

        basic.recover是否恢复消息到队列,参数是是否requeue,true则重新入队列,并且尽可能的将之前recover的消息投递给其他消费者消费,而不是自己再次消费。false则消息会重新被投递给自己
 

channel.basicAck(envelope.getDeliveryTag(), false);

      一般在该消息处理完后执行,该消息才会在队列里面被删除,不然会处于UnAcked的状态存在队列中,参数

  1. delivery_tag:一个整数,表示消息的唯一标识符。每个消息都有一个唯一的delivery_tag,用于标识消息在队列中的位置。

  2. multiple:一个布尔值,表示是否确认多个消息。如果为true,则确认所有delivery_tag小于或等于指定delivery_tag的消息。如果为false,则只确认指定delivery_tag的消息。

  3. requeue:一个布尔值,表示是否重新将消息放回队列。如果为true,则消息将被重新放回队列,等待下一次被消费。如果为false,则消息将被从队列中删除。