Erlang应用部署与热代码替换--理解 续

前几天学习了一下erlang的release的基本概念与基本用法。本周引入了 log4erl\mochiweb\ibrowse。事情没有想象的那么简单。遇到了以下几个问题:

1、发现打包的程序无法运行,仔细分析发现release中少了很多module,最后发现在log4erl.app\mochiweb.app中的 {modules,[ibrowse,...]}中没有写想的module都没有大包到release。这是为什么,还有什么办法解决这个问题?请明白者赐教。

2、log4erl与mochiweb中有一个相同的module,在利用target_syste:create/1创建时出现提示重复提示。我在log4erl.app直接去掉了一个。就可以打包了,据我分析个module一样的不会产生影响,有特殊的用法就难说了

3、以为OK了,但还是不行,因为是第一次对错误提示。没看明白。我就些了个简单的测试,测试通过。一旦整合就出错。在chenglitao的帮助,后来发现是ibrowse启动了两次。一次是自动启动,一次是我的server_sup启动了。因为都使用了{local,?MODULE.原以为添加一个start_link/1就可以了,发现还需要修改很多代码(yufeng建议我修改源码),因本人感情问题弄的我精神有点恍惚,思路不清,导致浪费了不少时间。有要解决此问题有三种方法(1)在我的server_sup中去掉ibrowse,我舍不得去掉。(2)修改源码,需要花更多时间理解源码的用意。A)我尝试在第二次启动是先stop/0,测试正常一旦发布使用就不可以,可能发布的过程中不允许出现stop信号。B)不用{local,?MODULE 重新起一个名字,我迫不及待的试用了一下,结果出错。这个能与init()引起的init 里有固定的put(ibrowse..).时间原因,小米朋友有个问题需要我帮,我放弃了此方法,采用了地三个方法。(3)使自动生成的script,不包含ibrowse启动. gz\script\boot是一个方法创建完的。我只好修改target_system:create方法,添加了个传入参数。这样就写了两个rel文件,启动一个不包含ibrowse用来生成不包含ibrowse的script.

问题搞定 在此谢过 chenglitao \yufeng 丢丢的帮助。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值