在RabbitMQ消息應答中, 我們在採用手動確認時,爲了避免因爲異常導致消息無法被處理,就曾使用過channel.basicRject()
方法,如下:
我們可以看看該方法,其中主要有兩個參數:
basicReject
在拒絕消息時,需要指定上述兩個參數,第一個deliveryTag
,即消息的ID;第二個requeue
,表示該消息是否需要重新發送給消費者。
當deliveryTag
標識設置爲true時,消息被拒絕後,會一直進行重發,直到消息能夠被正常的消費並確認,如果deliveryTag
標識設置爲false時,那麼消息被拒絕後不會再進行重發。
而Nack則是RabbitMQ對AMQP規範的一個擴展,其可以一次性拒絕多個消息。
其中多了一個參數multiple
,其表示是是否爲批量拒絕,這個參數之前在批量確認中也是有的。