feat: support retainer Start Length command
This commit is contained in:
parent
8e7ba16c3a
commit
f4a88f717b
|
@ -2,7 +2,7 @@
|
||||||
{application, emqx_retainer, [
|
{application, emqx_retainer, [
|
||||||
{description, "EMQX Retainer"},
|
{description, "EMQX Retainer"},
|
||||||
% strict semver, bump manually!
|
% strict semver, bump manually!
|
||||||
{vsn, "5.0.17"},
|
{vsn, "5.0.18"},
|
||||||
{modules, []},
|
{modules, []},
|
||||||
{registered, [emqx_retainer_sup]},
|
{registered, [emqx_retainer_sup]},
|
||||||
{applications, [kernel, stdlib, emqx, emqx_ctl]},
|
{applications, [kernel, stdlib, emqx, emqx_ctl]},
|
||||||
|
|
|
@ -32,10 +32,11 @@ load() ->
|
||||||
ok = emqx_ctl:register_command(retainer, {?MODULE, retainer}, []).
|
ok = emqx_ctl:register_command(retainer, {?MODULE, retainer}, []).
|
||||||
|
|
||||||
retainer(["info"]) ->
|
retainer(["info"]) ->
|
||||||
?PRINT("Number of retained messages: ~p~n", [emqx_retainer:retained_count()]);
|
count();
|
||||||
retainer(["topics"]) ->
|
retainer(["topics"]) ->
|
||||||
[?PRINT("~ts~n", [I]) || I <- emqx_retainer_mnesia:topics()],
|
topic(1, 1000);
|
||||||
ok;
|
retainer(["topics", Start, Len]) ->
|
||||||
|
topic(list_to_integer(Start), list_to_integer(Len));
|
||||||
retainer(["clean", Topic]) ->
|
retainer(["clean", Topic]) ->
|
||||||
emqx_retainer:delete(list_to_binary(Topic));
|
emqx_retainer:delete(list_to_binary(Topic));
|
||||||
retainer(["clean"]) ->
|
retainer(["clean"]) ->
|
||||||
|
@ -65,7 +66,9 @@ retainer(_) ->
|
||||||
emqx_ctl:usage(
|
emqx_ctl:usage(
|
||||||
[
|
[
|
||||||
{"retainer info", "Show the count of retained messages"},
|
{"retainer info", "Show the count of retained messages"},
|
||||||
{"retainer topics", "Show all topics of retained messages"},
|
{"retainer topics", "Same as retainer topic 1 1000"},
|
||||||
|
{"retainer topics <Start> <Length>",
|
||||||
|
"Show topics of retained messages by the specified range"},
|
||||||
{"retainer clean", "Clean all retained messages"},
|
{"retainer clean", "Clean all retained messages"},
|
||||||
{"retainer clean <Topic>", "Clean retained messages by the specified topic filter"},
|
{"retainer clean <Topic>", "Clean retained messages by the specified topic filter"},
|
||||||
{"retainer reindex status", "Show reindex status"},
|
{"retainer reindex status", "Show reindex status"},
|
||||||
|
@ -98,3 +101,12 @@ do_reindex(Force) ->
|
||||||
end
|
end
|
||||||
),
|
),
|
||||||
?PRINT_MSG("Reindexing finished~n").
|
?PRINT_MSG("Reindexing finished~n").
|
||||||
|
|
||||||
|
count() ->
|
||||||
|
?PRINT("Number of retained messages: ~p~n", [emqx_retainer:retained_count()]).
|
||||||
|
|
||||||
|
topic(Start, Len) ->
|
||||||
|
count(),
|
||||||
|
Topics = lists:sublist(emqx_retainer_mnesia:topics(), Start, Len),
|
||||||
|
[?PRINT("~ts~n", [I]) || I <- Topics],
|
||||||
|
ok.
|
||||||
|
|
|
@ -44,6 +44,9 @@ t_info(_Config) ->
|
||||||
t_topics(_Config) ->
|
t_topics(_Config) ->
|
||||||
ok = emqx_retainer_mnesia_cli:retainer(["topics"]).
|
ok = emqx_retainer_mnesia_cli:retainer(["topics"]).
|
||||||
|
|
||||||
|
t_topics_with_len(_Config) ->
|
||||||
|
ok = emqx_retainer_mnesia_cli:retainer(["topics", "100", "200"]).
|
||||||
|
|
||||||
t_clean(_Config) ->
|
t_clean(_Config) ->
|
||||||
ok = emqx_retainer_mnesia_cli:retainer(["clean"]).
|
ok = emqx_retainer_mnesia_cli:retainer(["clean"]).
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue