Ответ 1
Команда basic.nack, по-видимому, является расширением RabbitMQ, которое расширяет функциональные возможности basic.reject, чтобы включить режим массовой обработки. Оба включают флаг "бит" (т.е. логический) requeue
, поэтому у вас действительно есть несколько вариантов:
-
nack
/reject
сrequeue=1
: сообщение будет возвращено в очередь, из которой он пришел, как если бы это было новое сообщение; это может быть полезно в случае временного сбоя на стороне потребителя. -
nack
/reject
сrequeue=0
и настроенный Мертвый обмен письмами (DLX), опубликует сообщение на этот обмен, позволяя ему быть поднятым другой очередью -
nack
/reject
сrequeue=0
и ни один DLX не будет просто отбрасывать сообщение -
ack
удалит сообщение из очереди, даже если DLX настроен.
Если у вас нет DLX-конфигурации, всегда использовать ack
будет то же самое, что и nack
/reject
с requeue=0
; однако использование логически правильной функции с самого начала даст вам больше гибкости для настройки по-разному позже.