См. эту запись в FAQ по RabbitMQ .В то время как вы можете захотеть, чтобы RabbitMQ снова поставил в очередь неупакованные сообщения обратно в начало очереди (где они были до того, как ваш потребитель их убрал), реальность, скорее всего, будет другой, как вы уже видели.
Так что Basic.Recover()
не работает (сообщение было помещено обратно в очередь для дальнейшей обработки), просто не работает так, как вы ожидали.
Что-то в глубине моего сознания говорит мне, что вы можете быть в состоянии получить желаемое поведение, установив счетчик предварительной выборки, равный 1, и подключив к очереди не более одного потребителя.время, но я не могу гарантировать, что это так.Стоит попробовать.Однако даже если это сработает, не стоит полагаться на то, что дело останется навсегда, и при таком низком числе предварительной выборки, вероятно, пострадают сообщения вашего потребителя в секунду.