Команда python rabbitmqadmin list queues не получает содержимое сообщений, хотя сообщения существуют

Я изучаю rabbitMq, и теперь я хочу знать, как просматривать содержимое очереди.

Прежде всего, я хочу, чтобы я погуглил этот вопрос и узнал о команде

python rabbitmqadmin list queues

Я написал 2 отдельных приложения.

отправитель:

@Autowired
private AmqpTemplate template;
 ...

  for (int i = 0; i < 100; i++) {
        template.convertAndSend("queue1", "message_" + i);
  }

получатель:

@RabbitListener(queues = "queue1")
public void listenQueue1(String message, @Header(AmqpHeaders.DELIVERY_TAG) long tag) {
    logger.info("Got message:[" + message + "]");
}

Если я запускаю эти приложения вместе - я вижу сообщения на стороне получателя.

Чтобы увидеть сообщения в очереди, я решил остановить receiver и запустить sender

  1. я запускаю отправителя
  2. выполнить python rabbitmqadmin list queues

и видим следующий результат:

+-----------------+----------+
|      name       | messages |
+-----------------+----------+
| query-example-6 |          |
| queue1          |          |
| queue2          |          |
| queue3          |          |
| queue4          |          |
| queue5          |          |
| queue6          |          |
| queue7          |          |
| queue8          |          |
| queue9          |          |
+-----------------+----------+

3. Затем я запускаю приемник и вижу логи, что приемник принял сообщения

Можете ли вы объяснить причину, по которой я не вижу сообщения в консоли?

Как просмотреть содержимое сообщений очереди.


person gstackoverflow    schedule 15.08.2017    source источник


Ответы (1)


Я не знаком с rabbitmq.

может быть, сообщение "неподтверждено"?

например Я обнаружил, что в моей очереди есть сообщение:

$ rabbitmqadmin list queues name node messages

+----------------------------+----------------+----------+
|            name            |      node      | messages |
+----------------------------+----------------+----------+
| my_queue_name              | rabbit@xx-2    | 1        |

но когда я запускаю команду "получить", чтобы показать ее содержимое, rabbitmq говорит мне, что "элемента нет"

поэтому я запрашиваю его с помощью этой команды:

$ rabbitmqadmin list queues name node messages messages_ready messages_unacknowledged

+----------------------------+----------------+----------+----------------+-------------------------+
|            name            |      node      | messages | messages_ready | messages_unacknowledged |
+----------------------------+----------------+----------+----------------+-------------------------+
| my_queue_name              | rabbit@xxxxx-2 | 1        | 0              | 1                       |
+----------------------------+----------------+----------+----------------+-------------------------+

Я не знаю почему. просто перезапустите сервер rabbitmq, и все, кажется, идет нормально.

person Siwei    schedule 25.07.2018