Erlang的热更新

书本上的知识太过浅薄,再次稍微总结下erlang代码更新方式。

%% Find object code for module Mod 

{Mod, Bin, File} = code:get_object_code(Mod), 

%% and load it on all nodes including this one 

{ResL, _} = rpc:multicall(code, load_binary, [Mod, Bin, File,]),

%% and then maybe check the ResL list.

%如果是在指定节点上执行热更新还可以这样:

{_Module, Binary, Filename} = code:get_object_code(Module),

rpc:call(Node, code, load_binary, [Module, Filename, Binary])

%也可这样:

network_load(Module)->

{_Module, Binary, Filename} =
code:get_object_code(Module),

[rpc:call(Node, code, load_binary, [Module, Filename,
Binary]) || Node <- nodes()],

ok.

network_load(Node, Module)->

{_Module, Binary, Filename} =
code:get_object_code(Module),

rpc:call(Node, code, load_binary, [Module, Filename,
Binary]),

ok.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值