diff --git a/apps/emqx_retainer/src/emqx_retainer_mnesia.erl b/apps/emqx_retainer/src/emqx_retainer_mnesia.erl index 0d407ea78..73c86fe04 100644 --- a/apps/emqx_retainer/src/emqx_retainer_mnesia.erl +++ b/apps/emqx_retainer/src/emqx_retainer_mnesia.erl @@ -153,6 +153,14 @@ store_retained(_, Msg = #message{topic = Topic}) -> end. clear_expired(_) -> + case mria_rlog:role() of + core -> + clear_expired(); + _ -> + ok + end. + +clear_expired() -> NowMs = erlang:system_time(millisecond), QH = qlc:q([ RetainedMsg