rewrite from lager
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.6 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. -module(rumMgrKiller).
  2. -behavior(gen_emm).
  3. -include("eRum.hrl").
  4. -export([kill_me/0]).
  5. -export([
  6. init/1
  7. , handleEvent/2
  8. , handleCall/2
  9. , handleInfo/2
  10. , terminate/2
  11. , code_change/3
  12. ]).
  13. -record(state, {
  14. killerHwm :: non_neg_integer(),
  15. killerReTime :: non_neg_integer()
  16. }).
  17. kill_me() ->
  18. gen_emm:call(rumEvent, ?MODULE, mKillSelf).
  19. init([KillerHWM, KillerReinstallAfter]) ->
  20. {ok, #state{killerHwm = KillerHWM, killerReTime = KillerReinstallAfter}}.
  21. handleCall(mGetLogLevel, State) ->
  22. {replay, ?LOG_NONE, State};
  23. handleCall({mSetLogLevel, _Level}, State) ->
  24. {replay, ok, State};
  25. handleCall(mGetSettings, State = #state{killerHwm = KillerHWM, killerReTime = KillerReinstallAfter}) ->
  26. {replay, [KillerHWM, KillerReinstallAfter], State};
  27. handleCall(mKillSelf, #state{killerHwm = KillerHWM, killerReTime = KillerReinstallAfter}) ->
  28. exit({kill_me, [KillerHWM, KillerReinstallAfter]});
  29. handleCall(_Request, State) ->
  30. {replay, ok, State}.
  31. %% 检查每个日志消息的队列长度不是世界上最好的主意。我们将来可以使此操作在轮询计时器上起作用。
  32. handleEvent({mWriteLog, _Message}, State = #state{killerHwm = KillerHWM, killerReTime = KillerReinstallAfter}) ->
  33. {message_queue_len, Len} = process_info(self(), message_queue_len),
  34. case Len > KillerHWM of
  35. true ->
  36. exit({kill_me, [KillerHWM, KillerReinstallAfter]});
  37. _ ->
  38. {ok, State}
  39. end;
  40. handleEvent(_Event, State) ->
  41. {ok, State}.
  42. handleInfo(_Info, State) ->
  43. {ok, State}.
  44. terminate(_Reason, _State) ->
  45. ok.
  46. code_change(_OldVsn, State, _Extra) ->
  47. {ok, State}.