Feng 10 лет назад
Родитель
Сommit
b8a5ff2314
1 измененных файлов с 10 добавлено и 6 удалено
  1. 10 6
      src/emqttd_retainer.erl

+ 10 - 6
src/emqttd_retainer.erl

@@ -95,12 +95,16 @@ init([]) ->
     StatsFun = emqttd_stats:statsfun('retained/count', 'retained/max'),
     %% One second
     {ok, StatsTimer}  = timer:send_interval(timer:seconds(1), stats),
-    %% Five minutes
-    {ok, ExpireTimer} = timer:send_interval(timer:minutes(5), expire),
-    {ok, #state{stats_fun     = StatsFun,
-                expired_after = env(expired_after),
-                stats_timer   = StatsTimer,
-                expire_timer  = ExpireTimer}}.
+    State = #state{stats_fun = StatsFun, stats_timer = StatsTimer},
+    {ok, init_expire_timer(env(expired_after), State)}.
+
+init_expire_timer(0, State) ->
+    State;
+init_expire_timer(undefined, State) ->
+    State;
+init_expire_timer(Secs, State) ->
+    {ok, Timer} = timer:send_interval(timer:seconds(Secs), expire),
+    State#state{expired_after = Secs, expire_timer = Timer}.
 
 handle_call(Req, _From, State) ->
     ?UNEXPECTED_REQ(Req, State).