内存不足时阻止节点崩溃

时间:2016-07-29 15:18:58

标签: node.js

我正在建立一个nodeJS应用程序,其目的是将文档转换为图像。因此,它在RAM上相当沉重,因此当存在峰值时,我可以在服务器上达到100%的RAM使用率。

我的问题是,当它发生时,节点崩溃(内存不足异常),所以我想找到一种不崩溃的方法,只是做它的工作"以及它可以& #34 ;.

我知道有其他选择(缩放,排队,使用'永远'自动重新启动它),并且我正在努力,但如果出现故障,知道我的情况会很酷如果RAM恰好已经满了,服务器就不会死掉。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

我会这样做:

  • 任务在持久队列中排队
  • 几个单独的节点(工作者)进程从队列和计算结果中消耗任务。每个工作者仅限(例如)1.7GB内存(node.js进程的最大值)
  • 我认为任务相当同步且计算量很大,因此工人一次处理1个以上的任务没有多大意义。

这样可以保证不会耗尽所有RAM,并且可以非常有效地利用机器的资源。