PM2.5生产优化
PM2 Production Optimization
我刚刚尝试在 "production" 环境中部署节点应用程序。
我使用 PM2 运行通过使用此命令来安装应用程序。 pm2 start app.js --name <appname>
我的问题是:
- 为什么我看不到我分叉的
child_process
的 console.log
?
- 可以打电话很多
child_process.fork
吗?
编辑 1
基本上,应用程序所做的是使用 chokidar
监视文件夹。
当有新文件时,它会检查文件类型,然后执行以下操作之一:
- 如果文件类型是
.FLV
,应用程序会将文档添加到 MongoDB 集合中托管在 mLab 中。
- 如果文件类型是
.PNG
,应用程序将使用 child_process.fork
. 将文件上传到 S3 存储桶
- 如果文件类型是
.MP4
,应用程序将使用 child_process.fork
将文件上传到 S3 存储桶,然后 运行 和 FFmpeg
命令生成屏幕截图 运行s 在另一个 child_process.fork
上,然后触发上面的进程号 2
,它还在另一个 child_process.fork
. 上执行 MongoDB 更新
这是代码片段
1. Chokidar 观察者 (app.js)
编辑 2
添加了有关如何使用 chokidar 和分叉子进程的代码片段。
要让 children 的标准输出和标准错误使用 parent 的管道,您需要在 spawn 命令中告诉它这样做。这在文档中有解释:
https://nodejs.org/api/child_process.html#child_process_child_stdio
根据您的系统限制,根据需要生成其他进程很好,尽管代码示例似乎一次只生成一个。
我刚刚尝试在 "production" 环境中部署节点应用程序。
我使用 PM2 运行通过使用此命令来安装应用程序。 pm2 start app.js --name <appname>
我的问题是:
- 为什么我看不到我分叉的
child_process
的console.log
? - 可以打电话很多
child_process.fork
吗?
编辑 1
基本上,应用程序所做的是使用 chokidar
监视文件夹。
当有新文件时,它会检查文件类型,然后执行以下操作之一:
- 如果文件类型是
.FLV
,应用程序会将文档添加到 MongoDB 集合中托管在 mLab 中。 - 如果文件类型是
.PNG
,应用程序将使用child_process.fork
. 将文件上传到 S3 存储桶
- 如果文件类型是
.MP4
,应用程序将使用child_process.fork
将文件上传到 S3 存储桶,然后 运行 和FFmpeg
命令生成屏幕截图 运行s 在另一个child_process.fork
上,然后触发上面的进程号2
,它还在另一个child_process.fork
. 上执行 MongoDB 更新
这是代码片段
1. Chokidar 观察者 (app.js)
编辑 2
添加了有关如何使用 chokidar 和分叉子进程的代码片段。
要让 children 的标准输出和标准错误使用 parent 的管道,您需要在 spawn 命令中告诉它这样做。这在文档中有解释:
https://nodejs.org/api/child_process.html#child_process_child_stdio
根据您的系统限制,根据需要生成其他进程很好,尽管代码示例似乎一次只生成一个。