From e24b48e78858efe104321c2dcf1c3fd12cd45cba Mon Sep 17 00:00:00 2001 From: Matthias Radestock Date: Tue, 2 Feb 2010 20:13:45 +0000 Subject: extend 'rabbitmqctl list_queues' command with info on exclusivity --- docs/rabbitmqctl.1.pod | 16 ++++++++++++++++ src/rabbit_amqqueue_process.erl | 15 +++++++++++++++ src/rabbit_control.erl | 3 ++- 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/docs/rabbitmqctl.1.pod b/docs/rabbitmqctl.1.pod index 47c4d168..c0740114 100644 --- a/docs/rabbitmqctl.1.pod +++ b/docs/rabbitmqctl.1.pod @@ -202,6 +202,22 @@ queue arguments id of the Erlang process associated with the queue +=item owner_pid + +id of the Erlang process representing the connection which is the +exclusive owner of the queue, or empty if the queue is non-exclusive + +=item exclusive_consumer_pid + +id of the Erlang process representing the channel of the exclusive +consumer subscribed to this queue, or empty if there is no exclusive +consumer + +=item exclusive_consumer_tag + +consumer tag of the exclusive consumer subscribed to this queue, or +empty if there is no exclusive consumer + =item messages_ready number of messages ready to be delivered to clients diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl index a3b0814c..e02734a9 100644 --- a/src/rabbit_amqqueue_process.erl +++ b/src/rabbit_amqqueue_process.erl @@ -77,6 +77,9 @@ auto_delete, arguments, pid, + owner_pid, + exclusive_consumer_pid, + exclusive_consumer_tag, messages_ready, messages_unacknowledged, messages_uncommitted, @@ -510,6 +513,18 @@ i(auto_delete, #q{q = #amqqueue{auto_delete = AutoDelete}}) -> AutoDelete; i(arguments, #q{q = #amqqueue{arguments = Arguments}}) -> Arguments; i(pid, _) -> self(); +i(owner_pid, #q{owner = none}) -> + ''; +i(owner_pid, #q{owner = {ReaderPid, _MonitorRef}}) -> + ReaderPid; +i(exclusive_consumer_pid, #q{exclusive_consumer = none}) -> + ''; +i(exclusive_consumer_pid, #q{exclusive_consumer = {ChPid, _ConsumerTag}}) -> + ChPid; +i(exclusive_consumer_tag, #q{exclusive_consumer = none}) -> + ''; +i(exclusive_consumer_tag, #q{exclusive_consumer = {_ChPid, ConsumerTag}}) -> + ConsumerTag; i(messages_ready, #q{message_buffer = MessageBuffer}) -> queue:len(MessageBuffer); i(messages_unacknowledged, _) -> diff --git a/src/rabbit_control.erl b/src/rabbit_control.erl index 2fe3f33e..52c9076c 100644 --- a/src/rabbit_control.erl +++ b/src/rabbit_control.erl @@ -174,7 +174,8 @@ optional virtual host parameter for which to display results. The default value is \"/\". must be a member of the list [name, durable, -auto_delete, arguments, pid, messages_ready, messages_unacknowledged, +auto_delete, arguments, pid, owner_pid, exclusive_consumer_pid, +exclusive_consumer_tag, messages_ready, messages_unacknowledged, messages_uncommitted, messages, acks_uncommitted, consumers, transactions, memory]. The default is to display name and (number of) messages. -- cgit v1.2.1