【问题标题】:PM2 Production OptimizationPM2生产优化
【发布时间】:2017-04-23 08:31:55
【问题描述】:

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

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

我的问题是:

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

编辑 1

基本上,该应用所做的就是使用chokidar 来查看文件夹。 当有新文件时,它会检查文件类型,然后它会执行以下操作之一:

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

这是代码sn-ps

1. Chokidar 观察者 (app.js)


编辑 2

为我如何使用 chokidar 和分叉子进程添加了代码 sn-ps。

【问题讨论】:

  • 你需要问一个问题,而不是两个。此外,请显示您的应用程序的 pm2 配置以及任何相关的应用程序代码。
  • @Paul 嗨,Paul,感谢您的评论。这是我第一次部署到生产环境,这就是为什么我有很多问题。抱歉,如果帖子太宽泛了,我只是对其进行了编辑以使其更加集中
  • 还有 pm2 配置?
  • @Paul 我没有添加任何 PM2 配置,只是简单的命令来启动它pm2 start app.js。哦,在这个命令之前导出一些 ENV。我是否需要特定的配置才能让 PM2 在生产中更好地运行?
  • 有很多 pm2 选项,它们取决于您的环境,哪个运行得最好。到目前为止,您可能还不错。

标签: node.js optimization production pm2


【解决方案1】:

要让子级的 stdout 和 stderr 使用父级的管道,您需要在 spawn 命令中告诉它这样做。这在文档中进行了解释:

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

根据您的系统限制,可以根据需要生成其他进程,尽管代码示例似乎一次只生成一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2022-01-21
    • 2020-12-11
    • 2020-02-15
    • 1970-01-01
    • 1970-01-01
    • 2018-04-26
    相关资源
    最近更新 更多