erlang自动编译与加载
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
SisMaker 652ea2d3d4 添加执行文件 4年前
include 适配fileSync修改 4年前
priv 添加执行文件 4年前
src 添加执行文件 4年前
.gitignore 代码初始化 5年前
LICENSE Initial commit 5年前
README.md 版本要求添加 5年前
erlSync.sample.config 适配fileSync修改 4年前
rebar.config 修改 4年前

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, []}
        ]      
    } 
]