2015-05-29 4 views
2

У меня очередь с мертвой буквой с неудачными сообщениями с requeue = false. Я программно перемещаю сообщения из мертвой очереди обратно в основную очередь на RabbitOperations.receiveAndConvert(failedQueueName) и RabbitOperations.convertAndSend(msg). Есть ли способ предотвратить бесконечный цикл, не используя временную очередь для хранения сообщений о мертвой очереди, прежде чем переместить его в основную очередь?Как предотвратить бесконечный цикл при перемещении сообщений о мертвой очереди в главную очередь?

ответ

1

Deal-Leterring в RabbitMQ добавляет x-death заголовок:

Этот массив содержит запись для каждого мертвого события надписи, идентифицированный парой {queue, reason}.

Это один имеет count поля:

сколько раз это сообщение было мертвым литерным в этой очереди по этой причине

Итак, я уверен, что вы можете добавить filtering вашему потребителю очереди «Мертвого письма», чтобы отказаться от сообщений, которые уже имеют нежелательные count.