-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).
|
|
|
|
|