我正在使用 Cowboy 和 erlang.mk 进行开发,目前我的流程是: 1. 更改 vi 中的代码,保存,运行 make 2. 关闭 Cowboy,再次启动 Cowboy(我正在控制台模式下运行 Cowboy 以进行跟踪/调试)
有没有办法让 Cowboy 重新加载并以尽可能小的延迟自动重启?我知道我可以将 Cowboy stop 和 start 添加到我的 makefile 中,但也许有更好/响应更快的方式?
我看到有来自 rustyio 的同步包,但必须直接将其挂接到我的应用程序中似乎过于复杂。
我的公司用它来进行简单的自动重新部署。它每秒扫描一次文件系统,查找日期已更改的模块并重新加载它们。
所以你的过程将是:编辑、保存、制作
该模块将看到文件更改并强制重新加载
这不是发布和其他东西的奇特 OTP 方式,而是更底层的简单代码交换。
注意:您必须更改它才能为您工作,因为它取决于我的日志记录宏和其他内容,但您应该通过查看它来了解要点。
关键部分是这个函数:
reload(Module) ->
case code:purge(Module) of
true -> ?lwarn("Process killed as result of reloading: ~p",[Module]);
false -> ok
end,
code:load_file(Module).
Run Code Online (Sandbox Code Playgroud)
它尝试以安全的方式循环使用新代码。
| 归档时间: |
|
| 查看次数: |
1419 次 |
| 最近记录: |