erlang自动编译与加载
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
SisMaker 6721b34a6c 适配 gen_ipc修改 4 anni fa
include 适配 gen_ipc修改 4 anni fa
src 适配 gen_ipc修改 4 anni fa
.gitignore 代码初始化 5 anni fa
LICENSE Initial commit 5 anni fa
README.md 版本要求添加 5 anni fa
erlSync.sample.config 修改 4 anni fa
rebar.config 修改 4 anni fa

README.md

erlSync

otp21.2+

改造自 sync 有兴趣可以了解一下, 本项目仅仅在此基础做了一些封装改动和优化,工作原理并无差别

工作原理

启动后,Sync会收集有关已加载模块,ebin目录,源文件,编译选项等的信息。
然后,Sync会定期检查源文件的最后修改日期。如果自上次扫描以来文件已更改,则Sync会使用上一组编译选项自动重新编译模块。如果编译成功,它将加载更新的模块。否则,它将编译错误输出到控制台。
同步还会定期检查任何梁文件的上次修改日期,如果文件已更改,则会自动重新加载。
扫描过程会在运行的Erlang VM上增加1%到2%的CPU负载。已经采取了很多措施将其保持在较低水平。
但这仅适用于开发模式,请勿在生产中运行。

使用

启动自动编译与加载 
    erlSync:run().
暂停自动编译与加载
    erlSync:pause().
启动或者关闭集群同步加载
    erlSync:swSyncNode(TrueOrFalse).
设置编译与加载日志提示
    erlSync:setLog(Val).
设置加载后的钩子函数(支持匿名函数, {Mod, Fun}(Fun函数只有一个参数)格式, 以及他们的列表组合)
    erlSync:setOnsync(FunOrFuns).   

配置说明

参见erlSync.sample.config
默认配置为
[ 
    {erlSync,
        [
            {moduleTime, 30000},
                {srcDirTime, 6000},
                {srcFileTime, 6000},
                {compareBeamTime, 4000},
                {compareSrcFileTime, 4000}, 
                {srcDirs, undefined}
                {log, all},     
                {descendant, fix},
                {onlyMods, []},
                {excludedMods, []}
        ]      
    } 
]