При использовании из очереди в rabbitMq вы можете установить опцию noAck, которая может иметь значение true или false.
true
она получит сообщение в случае ошибки, которую не может обработать false
автоматически уберет сообщение и останется в очереди, которая будет извлечена позже.
(Это будет зависеть от языка, который вы используете для своего потребителя. NoAck = nodejs, autoAck = c # и т. Д.)
consumer.consume(q.queue, function (message) {
// your code
}, {noAck: false});
InЧто касается установки ограниченных повторных попыток, я должен был сделать это сам, передав счетчик повторов в заголовке передаваемого мной сообщения и должен был подтвердить сообщение, которое я читал, перед отправкой новой версии с измененным заголовком обратно в очередь.Я использовал несколько очередей для обеспечения целостности сообщений, но это можно сделать с помощью одной очереди.
Надеюсь, это помогло.