Erlang相关Appups/热更介绍及坑点

本文介绍了Erlang中的Appups和热更新机制,包括load_module、update、add_module/delete_module等命令的说明,以及应用升级文件、发布资源文件、启动脚本的创建和安装发布的过程。在热更新部分,详细阐述了热更新的实现原理、代码加载方式和版本切换。同时,提到了Erlang代码服务器的角色以及热更过程中可能遇到的坑点,如进程清理、Appup文件设置和软升级问题。
摘要由CSDN通过智能技术生成

Appup

部分命令说明

load_module
简单代码替换,针对某功能模块部分修改,仅需载入新版本即可

{load_module, Module}

update
同步代码替换,针对进程(某个gen_server/gen_fsm/gen_statem/gen_event等)的内部状态的格式发生改变,通过调用回调函数code_change转换内部状态,特殊进程调用回调函数system_code_change/4,处理方式为挂起进程,替换内部状态,切换新版,删除旧版,恢复进程

{
  update, Mod}
{
   update, Mod, supervisor}
{
   update, Mod, Change}
{
   update, Mod, DepMods}
{
   update, Mod, Change, DepMods}
{
   update, Mod, Change, PrePurge, PostPurge, DepMods}
{
   update, Mod, Timeout, Change, PrePurge, PostPurge, DepMods}
{
   update, Mod, ModType, Timeout, Change, PrePurge, PostPurge, DepMods}
  Mod = atom()
  ModType = static | dynamic
  Timeout = int()>0 | default | infinity
  Change = soft | {advanced,Extra}
    Extra = term()   (default = > soft)
  PrePurge = PostPurge = soft_purge | brutal_purge (default = > brutal_purge)
  DepMods = [Mod]

附:若改变督程启动规格,则需带supervisor参数
add_module/delete_module
引入/删除模块

{add_module, Module}
{delete_module, Module}
应用升级文件

Application.appup(存放ebin文件夹)

{Vsn,
  [{UpFromVsn, Instructions}, 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值