summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_disk_queue.erl10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/rabbit_disk_queue.erl b/src/rabbit_disk_queue.erl
index 329b453a4d..c8f726318e 100644
--- a/src/rabbit_disk_queue.erl
+++ b/src/rabbit_disk_queue.erl
@@ -44,7 +44,7 @@
dump_queue/1, delete_non_durable_queues/1, auto_ack_next_message/1
]).
--export([length/1]).
+-export([length/1, get_cache_info/0]).
-export([stop/0, stop_and_obliterate/0,
to_disk_only_mode/0, to_ram_disk_mode/0]).
@@ -263,6 +263,7 @@
-spec(to_ram_disk_mode/0 :: () -> 'ok').
-spec(to_disk_only_mode/0 :: () -> 'ok').
-spec(length/1 :: (queue_name()) -> non_neg_integer()).
+-spec(get_cache_info/0 :: () -> [{atom(), term()}]).
-endif.
@@ -333,6 +334,9 @@ to_ram_disk_mode() ->
length(Q) ->
gen_server2:call(?SERVER, {length, Q}, infinity).
+get_cache_info() ->
+ gen_server2:call(?SERVER, get_cache_info, infinity).
+
%% ---- GEN-SERVER INTERNAL API ----
init([FileSizeLimit, ReadFileHandlesLimit]) ->
@@ -473,7 +477,9 @@ handle_call({dump_queue, Q}, _From, State) ->
{reply, Result, State1};
handle_call({delete_non_durable_queues, DurableQueues}, _From, State) ->
{ok, State1} = internal_delete_non_durable_queues(DurableQueues, State),
- {reply, ok, State1}.
+ {reply, ok, State1};
+handle_call(get_cache_info, _From, State = #dqstate { message_cache = Cache }) ->
+ {reply, ets:info(Cache), State}.
handle_cast({publish, Q, Message}, State) ->
{ok, _MsgSeqId, State1} =