2016-06-04 3 views
0

У меня есть следующая проблема.Переместить сообщение От одной очереди до другой очереди без ее удаления Rabbitmq

Моя программа отправляет сообщения непосредственно в очередь (без обмена). Мне нужно контролировать входящие новые сообщения и отправлять их в другую очередь, не удаляя их из исходной очереди.

У меня нет доступа к программному коду, поэтому я не могу публиковать сообщения для обмена в первую очередь.

Возможно ли решить эту проблему с помощью веб-интерфейса управления RabbitMQ?

Я попытался использовать плавник для лопаты, но он удаляет все сообщения из исходной очереди после ack.

ответ

2

Во-первыхи, чтобы прояснить несколько вещей:

My program sends messages directly to the Queue (without exchange)Это не верно, по крайней мере (и, скорее всего, в данном случае) используются безымянный обмен.

removes all messages from source queue after ack это по дизайну и поэтому прекрасно.

Вы не должны хранить сообщения в очереди, очередь должна быть использована. Как говорит Дерик Бейли here

RabbitMQ - это не база данных. RabbitMQ - это брокер сообщений и система массового обслуживания.

по той же ссылке вы найдете ответ. Я не могу дать конкретный, так как вы не обеспечили мотивацию, но все, что он хранит в очереди, никогда не бывает хорошим!

Может быть, вы хотите, чтобы войти/сохранить ваше сообщение первым, а затем обработать его с последствиями переработок некоторых действий 3-го или что-то ...

+1

здесь является попыткой тег для @ Дерик-подола - так упоминаются:) – cantSleepNow

+0

Хорошо, спасибо. Я был неправ. У меня есть следующая ситуация. Программа публикует сообщения в некоторой очереди с использованием прямого обмена по умолчанию (ключ маршрутизации - это имя очереди). Есть ли способ отслеживать новые сообщения, входящие в очередь источника, и отправлять их в очередь назначения, не удаляя их из источника, как я уже упоминал ранее? PS: в исходной очереди также есть потребители, которые извлекают из нее сообщения. – seriks

+0

@seriks, эй не проблема, вот почему SO и все на нем здесь;) – cantSleepNow

Смежные вопросы