Bladeren bron

ft: sup启动整理

master
SisMaker 4 jaren geleden
bovenliggende
commit
1ae73bb43d
7 gewijzigde bestanden met toevoegingen van 36 en 46 verwijderingen
  1. +1
    -1
      eRum.sample.config
  2. +0
    -0
      src/crashLog/rumCrashLog.erl
  3. +1
    -1
      src/eRum.app.src
  4. +14
    -39
      src/eRum_sup.erl
  5. +15
    -0
      src/utils/rumUtil.erl
  6. +1
    -1
      src/watcher/rumHWatcherSrv.erl
  7. +4
    -4
      src/watcher/rumHWatcherSup.erl

+ 1
- 1
eRum.sample.config Bestand weergeven

@ -39,7 +39,7 @@
%% crash log cfg
%% 有效值 string | false
%% 为 false 的时候 没有 crash logger.
{crash_log, "log/crash.log"},
{crashLogFile, "crash.log"},
%%崩溃日志中事件的最大大小(以字节为单位)-默认为65536
{crash_log_msg_size, 65536},
%% 崩溃日志的最大大小(以字节为单位),在旋转之前,设置为0以禁用旋转-默认值为0

src/misc/rumCrashLog.erl → src/crashLog/rumCrashLog.erl Bestand weergeven


+ 1
- 1
src/eRum.app.src Bestand weergeven

@ -4,7 +4,7 @@
{vsn, "3.9.0"},
{modules, []},
{applications, [kernel, stdlib, goldrush]},
{registered, [eRum_sup, lager_event, rumCrashLog, rumHleWatcherSup]},
{registered, [eRum_sup, lager_event, rumCrashLog, rumHWatcherSup]},
{mod, {eRum_app, []}},
{env, [
%% Note: application:start(lager) overwrites previously defined environment variables thus declaration of default handlers is done at lager_app.erl

+ 14
- 39
src/eRum_sup.erl Bestand weergeven

@ -45,42 +45,41 @@ init(_Args) ->
RumEventSpec = #{
id => rumEvent,
start => {gen_event, start_link, [{local, rumEvent}]},
start => {gen_emm, start_link, [{local, rumEvent}]},
restart => permanent,
shutdown => 5000,
type => worker,
modules => [dynamic]
},
RumHleWatcherSupSpec = #{
id => rumHleWatcherSup,
start => {rumHleWatcherSup, start_link, []},
RumHWatcherSupSpec = #{
id => rumHWatcherSup,
start => {rumHWatcherSup, start_link, []},
restart => permanent,
shutdown => 5000,
type => supervisor,
modules => [rumHleWatcherSup]
modules => [rumHWatcherSup]
},
CrashLogSpec = crashLogSpec(application:get_env(lager, crash_log, false)),
CrashLogSpec = crashLogSpec(application:get_env(?RumAppName, crashLogFile, false)),
ChildSpecs =
case CrashLogSpec of
undefined ->
[RumEventSpec, RumHleWatcherSupSpec];
[RumEventSpec, RumHWatcherSupSpec];
_ ->
[RumEventSpec, RumHleWatcherSupSpec, CrashLogSpec]
[RumEventSpec, RumHWatcherSupSpec, CrashLogSpec]
end,
{ok, {SupFlags, ChildSpecs}}.
crashLogSpec(undefined) ->
undefined;
crashLogSpec(false) ->
undefined;
crashLogSpec(File) ->
MaxBytes = ensurePositive(application:get_env(?RumAppName, crash_log_msg_size), 65536),
RotationSize = ensurePositive(application:get_env(?RumAppName, crash_log_size), 0),
RotationCount = ensurePositive(application:get_env(?RumAppName, crash_log_count), 0),
RotationDate = rotationDate(application:get_env(?RumAppName, crash_log_date)),
RotationMod = rotatorMod(application:get_env(?RumAppName, crash_log_rotator), lager_rotator_default),
MaxBytes = rumUtil:get_env(?RumAppName, crash_log_msg_size, 65536),
RotationSize = rumUtil:get_env(?RumAppName, crash_log_size, 0),
RotationCount = rumUtil:get_env(?RumAppName, crash_log_count, 0),
RotationDate = rumUtil:get_env(?RumAppName, crash_log_date, "$D0"),
RotationMod = rumUtil:get_env(?RumAppName, crash_log_rotator, lager_rotator_default),
#{
id => rumCrashLog,
start => {rumCrashLog, start_link, [File, MaxBytes, RotationSize, RotationDate, RotationCount, RotationMod]},
@ -90,27 +89,3 @@ crashLogSpec(File) ->
modules => [rumCrashLog]
}.
%% IMY-todo
ensurePositive({ok, Val}, _Default) when is_integer(Val) andalso Val >= 0 ->
Val;
ensurePositive(_Val, Default) ->
Default.
rotationDate({ok, ""}) ->
undefined;
rotationDate({ok, Val3}) ->
case rumUtil:parse_rotation_date_spec(Val3) of
{ok, Spec} -> Spec;
{error, _} ->
error_logger:error_msg("Invalid date spec for crash log ~p~n", [Val3]),
undefined
end;
rotationDate(_) ->
undefined.
rotatorMod({ok, Mod}, _Default) when is_atom(Mod) ->
Mod;
rotatorMod(_, Default) ->
Default.

+ 15
- 0
src/utils/rumUtil.erl Bestand weergeven

@ -29,6 +29,7 @@
, otp_version/0
, maybe_flush/2
, has_file_changed/3
, get_env/3
]).
-ifdef(TEST).
@ -637,6 +638,20 @@ has_file_changed(Name, Inode0, Ctime0) ->
{true, undefined}
end.
-spec get_env(Application, Par, Def) -> Val when
Application :: atom(),
Par :: atom(),
Def :: term(),
Val :: term().
get_env(Application, Key, Def) ->
case application:get_env(Application, Key) of
{ok, Val} ->
Val;
_ ->
Def
end.
-ifdef(TEST).
parse_test() ->

src/watcher/rumHleWatcherSrv.erl → src/watcher/rumHWatcherSrv.erl Bestand weergeven

@ -1,4 +1,4 @@
-module(rumHleWatcherSrv).
-module(rumHWatcherSrv).
-behaviour(gen_srv).

src/watcher/rumHleWatcherSup.erl → src/watcher/rumHWatcherSup.erl Bestand weergeven

@ -1,4 +1,4 @@
-module(rumHleWatcherSup).
-module(rumHWatcherSup).
-behaviour(supervisor).
@ -36,12 +36,12 @@ init(_Args) ->
},
ChildSpecs = [
#{
id => rumHleWatcherSrv,
start => {rumHleWatcherSrv, start_link, []},
id => rumHWatcherSrv,
start => {rumHWatcherSrv, start_link, []},
restart => temporary,
shutdown => 5000,
type => worker,
modules => [rumHleWatcherSrv]
modules => [rumHWatcherSrv]
}
],
{ok, {SupFlags, ChildSpecs}}.

Laden…
Annuleren
Opslaan