当内存不足时防止节点崩溃

我正在构build一个nodeJS应用程序,目的是将文档转换为图像。 因此,内存非常大,所以当出现高峰时,服务器上的内存使用率可能会达到100%。

我的问题是,当它发生时,节点崩溃(内存不足的例外),所以我想find一个方法,它不会崩溃,只是做它的工作“以及它可以”。

我知道还有其他的select(缩放,排队,使用'永远'自动恢复),并正在处理这个问题,但万一有些失败,知道我的服务器将不会死在RAM发生充满。

有没有办法做到这一点?

我会这样做:

  • 任务在持久队列中排队
  • 几个单独的节点(工作者)进程使用队列中的任务并计算结果。 每个工作者都被限制在1.7GB内存(最多为node.js进程)
  • 我认为这个任务是相当同步的,而且计算量很大,所以工人一次只能处理一个以上的任务是没有多大意义的。

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