瀏覽代碼

chore(retainer): throttle `table_is_full` log

Thales Macedo Garitezi 1 年之前
父節點
當前提交
e1b6c10353
共有 2 個文件被更改,包括 11 次插入7 次删除
  1. 3 2
      apps/emqx_conf/src/emqx_conf_schema.erl
  2. 8 5
      apps/emqx_retainer/src/emqx_retainer_mnesia.erl

+ 3 - 2
apps/emqx_conf/src/emqx_conf_schema.erl

@@ -80,10 +80,11 @@
     cannot_publish_to_topic_due_to_not_authorized,
     cannot_publish_to_topic_due_to_quota_exceeded,
     connection_rejected_due_to_license_limit_reached,
-    dropped_msg_due_to_mqueue_is_full,
-    socket_receive_paused_by_rate_limit,
     data_bridge_buffer_overflow,
+    dropped_msg_due_to_mqueue_is_full,
     external_broker_crashed,
+    failed_to_retain_message,
+    socket_receive_paused_by_rate_limit,
     unrecoverable_resource_error
 ]).
 

+ 8 - 5
apps/emqx_retainer/src/emqx_retainer_mnesia.erl

@@ -199,11 +199,14 @@ store_retained(State, Msg = #message{topic = Topic}) ->
     Tokens = topic_to_tokens(Topic),
     case is_table_full(State) andalso is_new_topic(Tokens) of
         true ->
-            ?SLOG(error, #{
-                msg => "failed_to_retain_message",
-                topic => Topic,
-                reason => table_is_full
-            });
+            ?SLOG_THROTTLE(
+                error,
+                #{
+                    msg => failed_to_retain_message,
+                    reason => table_is_full
+                },
+                #{topic => Topic}
+            );
         false ->
             do_store_retained(Msg, Tokens, ExpiryTime),
             ?tp(message_retained, #{topic => Topic}),