Просмотр исходного кода

fix(delayed): fix that the query is not a cluster query

lafirest 3 лет назад
Родитель
Сommit
eeb92dae23

+ 9 - 0
apps/emqx_modules/src/emqx_delayed.erl

@@ -48,6 +48,8 @@
         , get_delayed_message/1
         , delete_delayed_message/1
         , post_config_update/5
+        , cluster_list/1
+        , cluster_query/4
         ]).
 
 -export([format_delayed/1]).
@@ -130,6 +132,13 @@ set_max_delayed_messages(Max) ->
 list(Params) ->
     emqx_mgmt_api:paginate(?TAB, Params, ?FORMAT_FUN).
 
+cluster_list(Params) ->
+    emqx_mgmt_api:cluster_query(Params, ?TAB, [], {?MODULE, cluster_query}).
+
+cluster_query(Table, _QsSpec, Continuation, Limit) ->
+    Ms = [{'$1', [], ['$1']}],
+    emqx_mgmt_api:select_table_with_count(Table, Ms, Continuation, Limit, fun format_delayed/1).
+
 format_delayed(Delayed) ->
     format_delayed(Delayed, false).
 

+ 1 - 1
apps/emqx_modules/src/emqx_delayed_api.erl

@@ -160,7 +160,7 @@ status(put, #{body := Body}) ->
     update_config(Body).
 
 delayed_messages(get, #{query_string := Qs}) ->
-    {200, emqx_delayed:list(Qs)}.
+    {200, emqx_delayed:cluster_list(Qs)}.
 
 delayed_message(get, #{bindings := #{msgid := Id}}) ->
     case emqx_delayed:get_delayed_message(Id) of