eggjs/egg

关于eggjs热部署问题

AkashiX opened this issue · 4 comments

  • Node Version: >= 7.x
  • Egg Version: newest
  • Plugin Name:
  • Plugin Version:
  • Platform: Windows 10
  • Mini Showcase Repository:

生产环境的eggjs应用是否支持热部署?

ngot commented

目前egg推荐的是,先切走流量,重启,再切回流量的部署方式。

况且,Node.js 本来就无法做到真真完善的热重启。目前由的所谓热重启:

  • 重启Worker: 无法控制流量,也无法保证正在处理的请求不终端。
  • 删除require.cahe : 这个会造成内存泄露不能用。

通过删除require.cache : 这个会造成内存泄露不能用的方案做热更新,能举个内存泄露例子吗?

除了要自己构造模块引用关系表,以便清除所有引用到的地方,你要热更新的文件里如果创建了 timer,socket 等资源属性的东西清除前还要手动释放,我觉得这已经超出【注意点就行】的范畴了,花这么多精力,不去直接做 lb 多快