Как удалить сообщение в rabbitMQ?

Есть ли способ поместить сообщение в очередь? Я получаю заголовок своего пакета и проверяю на нем какой-то шаблон, и когда этот шаблон терпит неудачу, я хочу его отбросить. Есть ли способ для этого? Как это сделать?


person Alireza    schedule 06.08.2014    source источник


Ответы (1)


В RabbitMQ сообщения публикуются на биржах и доставляются в очереди. Вы можете настроить обмен, который отбрасывает сообщения, соответствующие некоторым шаблонам заголовков. Обмен заголовками. Или вы можете перечислить очередь и подтвердить сообщение, которое соответствует вашему шаблону, не предпринимая никаких дополнительных действий, что эквивалентно удалению сообщения.

person Raul Andres    schedule 06.08.2014
comment
Неподтвержденные пакеты отбрасываются? Это то, что вы говорите? Разве они не возвращены? - person Alireza; 06.08.2014
comment
Нет, подтвержденные пакеты сбрасываются с Rabbit. Отклоненные пакеты доставляются повторно. Если вы хотите отбросить пакет, просто отправьте ему ACK. - person Raul Andres; 06.08.2014
comment
Итак, несоответствующие шаблоны должны быть подтверждены, чтобы их можно было удалить? Я думаю, что я немного на темной стороне. - person Alireza; 06.08.2014
comment
Это идея. Если вы обрабатываете заголовки на стороне очереди, подтвердите те, которые вы хотите удалить. - person Raul Andres; 06.08.2014
comment
Я просмотрел наш код и увидел, что мы используем nack с requeue=false для отбрасывания пакетов вместо их подтверждения, поэтому я думаю, что мой первый ответ можно улучшить. - person Raul Andres; 07.08.2014
comment
nack пакет, чтобы сбросить его теперь более разумно, спасибо за вашу помощь. ;-) - person Alireza; 09.08.2014