Ruby-有什么办法能实现 Ruby 客户端代码的自动更新
是不是必须人为操作?能否用一个守护进程负责获取代码,替换代码和然后重新激活主程序?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
是不是必须人为操作?能否用一个守护进程负责获取代码,替换代码和然后重新激活主程序?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
提供一个思路
首先将你的code通过git或svn做版本控制,部署在server端
然后在你的code中加入如下逻辑:
每隔一段时间check一下当前本地repo是否和server端版本同步,如果同步则继续执行
如果版本低于server端,则update本地repo,
然后通过exec新脚本替换当前进程,这样就可以允许最新版本的code了
你想实现的功能应该是类似erlang的热更新吧
ruby应该可以简单实现这种热更新的,只是无法达到erlang的那种稳定性
在代码里检测版本库中有无patch,有的话就load进当前的ruby进程,patch里面就是你要对当前运行中的ruby进程的修改
我觉的你应该借助与svn来做一个updatecode server,更新你客户端的代码,比如每隔5分钟更新一次你客户端的代码,现在只管向svn服务器提交代码了,updatecode server会自动更新
loop do
system 'svn up'
sleep(300)
end