viewPager.setOffscreenPageLimit(2);
rabbitmqctl的输出如下所示。我无法弄清楚每个栏目的含义。我怎样才能看到每一栏的含义?
答案 0 :(得分:3)
对此没有“简单”的解决方案,但我们是IT,我们可以构建它们。我不是RabbitMQ的专家,也不是编程方面的专家,但我会尽力给出一个很好的答案,以防万一有人来这里寻求帮助。
让我们从rabbitmqctl控制台列出队列的确切情况。输入“ rabbitmqctl ”即可获得可用命令列表:
Commands:
[...]
list_queues [-p <vhost>] [--online] [--offline] [--local] [<queueinfoitem> ...] [-t <timeout>]
[...]
假设您知道vhost和队列是什么,假设您要列出vhost“ TEST ”中的所有队列,那么您需要输入:
> rabbitmqctil list_queues -p TEST
Timeout: 60.0 seconds ...
Listing queues for vhost TEST ...
test.queue 0
默认情况下,您只获取队列的“名称”及其“当前深度”。 你在哪里找到队列的所有参数?在您首先输入的帮助说明中要特别注意“ queueinfoitem ”。如果您看到rabbitmqctl帮助说明(通过键入“rabbitmqctl”),则在指令末尾可以看到参数“”的可用选项列表。
现在让我们看一个你希望看到队列更高级状态的例子:队列中准备好的消息,状态未确认的消息,消息RAM,消费者,消费者的内存利用率,队列状态,当然, 其名称。
你是对的一件事:rabbitmqctl不会以友好的方式返回结果。默认情况下,你得到这个:
rabbitmqctl list_queues -p TEST messages_ready, messages_unacknowledged, messages_ram, consumers, consumer_utilisation, state, name
Timeout: 60.0 seconds ...
Listing queues for vhost TEST ...
0 0 0 0 running test.queue
但是通过一点点的想象力,你可以做到这一点:
----------------------------------------------------------
Msg. * Msg. * Msg. ** ** Cons. ** **** Name
Rdy * Unack * RAM *** Cons. * Util. ** State ***
----------------------------------------------------------
0 0 0 0 running test.queue
这没什么大不了的,但它比默认更好。 我用一个小的python脚本实现了这个目标:
import os
vhosts = os.popen("rabbitmqctl list_vhosts name").read()
logging.info(vhosts)
vhosts = vhosts.split("\n",1)[1]
vhosts = vhosts[:-1]
vhosts = vhosts.split("\n")
for vhost in vhosts:
header_a = "Msg. * Msg. * Msg. ** ** Cons. ** **** Name\n"
header_b = "Rdy * Unack * RAM *** Cons. * Util. ** State *** \n"
dash = "----------------------------------------------------------\n"
queues = os.popen("rabbitmqctl list_queues -p " + vhost + " messages_ready, messages_unacknowledged, messages_ram, consumers, consumer_utilisation, state, name").read()
queues = queues.split("\n",2)[2]
queues_list = dash + header_a + header_b + dash + queues
print(queues_list)
当然,这可以通过很多方式得到改善,批评者总是受到欢迎,我仍然希望它有所帮助。
干杯。