8
最近看了不少资料,关于生产模式下自动重启依然没有头绪,没有人有这种需求吗
- webhooks http://www.abc.com/git-pull-reload git pull后重启项目
- 更新config, 动态的在线更新一些配置后重启项目 需求关键点都是要重启,能不能介绍下怎么操作,实在是找不到方向了,卡了几天了
最近看了不少资料,关于生产模式下自动重启依然没有头绪,没有人有这种需求吗
看了源码找到了个方法,附上代码,供有遇到问题的朋友参考
// controller/home.js
async reload() {
if (shelljs.exec('git pull').code !== 0) {
shelljs.echo('Error: Git pull failed')
}
process.send({
to: 'master',
action: 'reload-worker',
})
}
代码不知道有没有副作用,如果有,请指正
单机重启没啥意义,一般都是通过前面的 SLB 来切流重启。
你说的单机是指的一台服务器,还是多核? 这个需求应该有人有的,除了我上面的例子,还有例如:一个网站,管理希望自己配置一下网站,而这些往往需要yarn stop, yarn start, 而且需要上服务器操作,管理员只会在后台点来点去,这时在后台有一个自动重启就方便很多
指 多个 pod。这是运维平台的职责,现在都 2020 年了,都是标配能力了吧。
框架这块不打算提供 worker 层面的重启能力。
如果你实在需要,看下其他同学的实践:
这两篇我上周翻了n次,没明白是怎么干的,能力有限
加油。可以直接联系对应的作者。
另外建议学习下 SLB 这块的相关知识。
@guohuihot 我基于 egg-development
插件的 reload 方法做了一个生产环境 reload worker 的插件 https://github.com/hex-ci/egg-hot-reload ,对于希望单机 reload worker 的童鞋可能有用吧~ 我使用 ab 工具 10 万请求 20 并发请求,在 reload 期间进行了测试,工具显示没有失败的请求,看起来貌似没有问题。