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

Meh*_*ara 1 fs node.js npm express pm2

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

情况如下。

案件:

  • 我的应用程序在 PM2 上运行(例如pm2 start app.js) - 无论哪种方式 - 分叉/集群模式。
  • 我用来fs.createWriteStream写入文件,代码如下

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

解决方案:

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

版本详情:

  • npm:6.10.2

  • 节点:v10.16.0

  • pm2:2.10.3

有人可以解释一下为什么 PM2 会造成这种情况吗?

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

Tua*_*ran 5

您是否有机会使用pm2withwatch模式?因为如果您这样做,pm2 将重新启动该进程,因为检测到新文件内容createWriteStream