PM2生产优化

时间:2017-04-23 08:31:55

标签: node.js optimization production pm2

我刚尝试在“生产”环境中部署节点应用程序。

我使用PM2使用此命令运行应用程序。 pm2 start app.js --name <appname>

我的问题是:

  1. 为什么我看不到console.log我分叉的child_process
  2. 可以拨打多个child_process.fork吗?
  3. 编辑1

    基本上,应用程序使用chokidar观看文件夹。 当有新文件时,它将检查文件类型,然后它将执行以下任一项:

    1. 如果文件类型为.FLV,则应用程序会将文档添加到mLab中托管的MongoDB集合中。
    2. 如果文件类型为.PNG,则应用会使用child_process.fork将文件上传到S3存储桶。
    3. 如果文件类型为.MP4,则应用会使用child_process.fork将文件上传到S3存储桶,然后运行FFmpeg命令以生成在另一个{{1}上运行的屏幕截图然后,它会触发上面的进程号child_process.fork,它还会在另一个2上执行MongoDB更新。
    4. 这是代码片段

      1。 Chokidar Watcher(app.js)

      Chokidar Watcher

      编辑2

      添加了有关我如何使用chokidar和分叉子进程的代码片段。

1 个答案:

答案 0 :(得分:1)

要让孩子们的stdout和stderr使用父管道,你需要告诉它作为spawn命令的一部分。这在文档中解释:

https://nodejs.org/api/child_process.html#child_process_child_stdio

根据需要生成其他进程是很好的,但不受系统限制的限制,尽管代码示例似乎只是一次生成一个。