erlang各种有用的函数包括一些有用nif封装,还有一些性能测试case。
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.

41 lines
1.7 KiB

4 years ago
  1. -module(template).
  2. %% sup行为模块
  3. -behaviour(supervisor).
  4. -export([start_link/0]).
  5. -export([init/1]).
  6. -define(SERVER, ?MODULE).
  7. start_link() ->
  8. supervisor:start_link({local, ?SERVER}, ?MODULE, []).
  9. % 主管的孩子被定义为孩子规格列表 。当主管启动时,将根据此列表从左到右依次启动子进程。主管终止时,它首先以相反的启动顺序从右到左终止其子进程。
  10. % sup_flags() =
  11. % #{
  12. % strategy => strategy(), % optional one_for_one | one_for_all | rest_for_one | simple_one_for_one
  13. % intensity => non_neg_integer(), % optional MaxR 周期时间内最大重启次数
  14. % period => pos_integer() % optional MaxT 重启时间周期 MaxT里重启次数大于MaxR
  15. % }
  16. % child_spec() =
  17. % #{
  18. % id => child_id(), % mandatory Id用来内部标识子规范
  19. % start => mfargs(), % mandatory {M,F,A}
  20. % restart => restart(), % optional permanent(总是重启) | transient(异常关闭会重启即关闭原因非 normal,shutdown,{shutdown,Term}) | temporary(不会重启)
  21. % shutdown => shutdown(), % optional brutal_kill | infinity | integer
  22. % type => worker(), % optional supervisor | worker
  23. % modules => modules() % optional [Module] 假如子进程是supervisor、gen_server 或 gen_fsm,那么Module 是回调模块的名称;假如子进程是gen_event,那么Modules 应该是dynamic
  24. % }
  25. init([]) ->
  26. SupFlags =
  27. #{
  28. strategy => one_for_all,
  29. intensity => 0,
  30. period => 1
  31. },
  32. ChildSpecs =
  33. [],
  34. {ok, {SupFlags, ChildSpecs}}.