fs.createWriteStream重新启动在PM2上运行的应用程序

时间:2019-11-22 06:50:30

标签: node.js express npm fs pm2

我正在使用PM2运行节点应用程序,并且在运行于PM2的应用程序中使用fs.createWriteStream遇到了问题,

情况如下。

案例:

  • 我的应用程序在PM2(例如pm2 start app.js)上运行-两种方式都可以-派生/群集模式。
  • 我正在使用fs.createWriteStream写入文件,代码如下

    let myWriteSteram = fs.createWriteStream(path.resolve(publicDir, myCSVFileName))
    
  • 一旦脚本到达并执行上述行,它将立即重新启动应用程序进程。

解决方案:

  • 我从PM2停止了我的应用程序,并通过使用node app.jsfs.createWriteStream开始按预期方式工作。

版本详细信息:

  • npm: 6.10.2

  • 节点: v10.16.0

  • pm2: 2.10.3

有人可以解释一下PM2导致这种情况的原因吗?

这只是我发现的一种情况,当我们使用PM2运行应用程序时,文件系统可能还有很多其他情况。

1 个答案:

答案 0 :(得分:1)

您是否有机会在pm2模式下使用watch?因为如果这样做,由于使用createWriteStream

检测到新文件内容,pm2将重新启动该过程