我正在学习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
- 我运行发件人
- 执行
pythonrabbitmqadmin列表队列
并看到以下结果:
+-----------------+----------+
| name | messages |
+-----------------+----------+
| query-example-6 | |
| queue1 | |
| queue2 | |
| queue3 | |
| queue4 | |
| queue5 | |
| queue6 | |
| queue7 | |
| queue8 | |
| queue9 | |
+-----------------+----------+
3.然后我运行接收器并查看接收器接受消息的日志
您能解释一下我在控制台中看不到消息的原因吗?
如何查看队列消息内容。
最佳答案
我对rabbitmq不熟悉。
也许该消息是“未确认的”?
例如我发现我的队列有一条消息:
$ rabbitmqadmin list queues name node messages
+----------------------------+----------------+----------+
| name | node | messages |
+----------------------------+----------------+----------+
| my_queue_name | rabbit@xx-2 | 1 |
但是当我运行“get”命令来显示其内容时,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服务器,一切似乎都很顺利。
关于java - pythonrabbitmqadmin listqueues命令虽然存在消息但无法获取消息内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45693508/