@pauchog

Как отфильтровать очередь (Unacked -> Ready)?

Получаю все сообщения из очереди, затем на основании некоторых значений из заголовков сообщений формирую фильтр, для того чтобы, некоторые из сообщений отбросить/пропустить, оставшиеся обработать. Проблема в том, что после получения всех сообщений, для формирования фильтра, эти сообщения становятся unacked, даже если я делаю BasicNaсk multiple=true, requeue=true. После отключения консьюмера BasicCancel также ничего не происходит, они остаюстся unacked.
Чтобы, ещё раз выбрать сообщения, для обработки с использованием сформированного фильтра, приходится закрывать сессию (Close) с и повторно её открывать (CreateModel). Подозреваю, что должно быть какое то другое решение. Подскажите куда копать?
  • Вопрос задан
  • 1503 просмотра
Решения вопроса 1
@pauchog Автор вопроса
Ответ на вопрос здесь
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@yarkin
Странная ситуация, если тут Вам не помогут, попробуйте задать вопрос в официальной гугл-группе. А delivery-tag при nack'е идёт от последнего полученного сообщения? И не забывайте, что сервер больше не пришлёт эти сообщения в тот же канал:
The server MUST NOT deliver the message to the same client within the context of the current channel.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы