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.
 
 
 
 
 
 

36 rivejä
983 B

-module(hot_swap).
-export([
load/1,
network_load/1,
network_load/2
]).
%% 当前节点热部署:
%% @param ModList 模块列表(原子列表)
load(ModList) ->
lists:foreach(fun(Module) ->
code:purge(Module),
code:load_file(Module)
end, ModList).
%% 节点集热更:
%% @param ModList 模块列表(原子列表)
network_load(ModList) ->
lists:foreach(fun(Module) ->
[begin erpc:call(Node, code, purge, [Module]), erpc:call(Node, code, load_file, [Module]) end || Node <- (nodes() ++ [node()])]
end, ModList).
%% 指定单节点热更:
%% @param NodeList 节点集合(原子列表)
%% @param ModList 模块列表(原子列表)
network_load(NodeList, ModList) ->
lists:foreach(fun(Node) ->
lists:foreach(fun(Module) ->
erpc:call(Node, code, purge, [Module]),
erpc:call(Node, code, load_file, [Module])
end, ModList)
end, NodeList).