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

BPr*_*ost 5 node.js

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

我的问题是,当它发生时,节点崩溃(内存异常),所以我想找到一种不崩溃的方法,只是"尽可能"地完成它的工作.

我知道有其他选择(缩放,排队,使用'永远'来自动恢复它),并且我正在努力,但是如果出现故障,知道如果RAM发生我的服务器不会死的话会很酷充实

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

Tom*_*ich 0

我会这样做:

  • 任务在持久队列中排队
  • 几个单独的节点(工作)进程使用队列中的任务并计算结果。每个工作进程的内存限制为(例如)1.7GB(node.js 进程的最大值)
  • 我认为该任务是相当同步的并且计算量很大,因此工作人员一次处理超过 1 个任务没有多大意义。

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