Env .: Ubuntu上的Node.js,以编程方式使用PM2。将工作人员添加到PM2池。不要重新加载/重新启动现有工作人员
我已经在我的主代码中通过节点启动了带有3个实例的PM2。假设我使用PM2命令行来删除其中一个实例。我可以将另一名工人添加到池中吗?这可以在不影响其他工作人员的操作的情况下完成吗?
我想我应该用start
方法:
pm2.start({
name : 'worker',
script : 'api/workers/worker.js', // Script to be run
exec_mode : 'cluster', // OR FORK
instances : 1, // Optional: Scale your app by 4
max_memory_restart : '100M', // Optional: Restart your app if it reaches 100Mo
autorestart : true
}, function(err, apps) {
pm2.disconnect();
});
但是,如果你使用pm2 monit
,你会看到2种现有的情况下重新启动,并没有其他的创建。结果仍然是2个运行实例。行为是相同的 -
更新 如果cluster
或fork
不要紧。
更新2的命令行的scale
选项(https://keymetrics.io/2015/03/26/pm2-clustering-made-easy/),但我不明白的编程API文档(https://github.com/Unitech/PM2/blob/master/ADVANCED_README.md#programmatic-api)这一方法。
是的。如果你想拥有一个弹性的工作者池,扩展应该是你头脑中的第一件事,并且应该以编程方式完成,所以你可以编写代码来根据服务器负载做出决定。我会保持这个问题的公开...希望这将很快发布... – noderman