|
@@ -69,14 +69,17 @@ handle_info({mnesia_system_event, {mnesia_down, Node}}, State) ->
|
|
|
lager:error("!!!Mnesia node down: ~s", [Node]),
|
|
lager:error("!!!Mnesia node down: ~s", [Node]),
|
|
|
Fun = fun() ->
|
|
Fun = fun() ->
|
|
|
ClientIds =
|
|
ClientIds =
|
|
|
- mnesia:select(session, [{#mqtt_session{client_id = '$1', sess_pid = '$2'},
|
|
|
|
|
|
|
+ mnesia:select(session, [{#mqtt_session{client_id = '$1', sess_pid = '$2', _ = '_'},
|
|
|
[{'==', {node, '$2'}, Node}],
|
|
[{'==', {node, '$2'}, Node}],
|
|
|
['$1']}]),
|
|
['$1']}]),
|
|
|
- lists:foreach(fun(ClientId) -> mnesia:delete({session, ClientId}) end, ClientIds)
|
|
|
|
|
|
|
+ lists:foreach(fun(ClientId) -> mnesia:delete({session, ClientId}) end, ClientIds)
|
|
|
end,
|
|
end,
|
|
|
mnesia:async_dirty(Fun),
|
|
mnesia:async_dirty(Fun),
|
|
|
{noreply, State};
|
|
{noreply, State};
|
|
|
|
|
|
|
|
|
|
+handle_info({mnesia_system_event, {mnesia_up, _Node}}, State) ->
|
|
|
|
|
+ {noreply, State};
|
|
|
|
|
+
|
|
|
handle_info(tick, State) ->
|
|
handle_info(tick, State) ->
|
|
|
{noreply, setstats(State), hibernate};
|
|
{noreply, setstats(State), hibernate};
|
|
|
|
|
|