将工作人员添加到PM2池。 不要重新加载/重启现有的工人

Env .: Ubuntu上的Node.js,以编程方式使用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个现有实例重新启动,并且没有其他实例被创build。 结果仍然是2个运行实例。

更新它并不重要,如果clusterfork – 行为是相同的。

更新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 )。

我其实认为这不能在PM2中完成,因为我有完全相同的问题。

我很抱歉,但我认为解决办法是使用其他的东西,因为PM2是相当有限的。 缺乏添加更多工人的能力对我来说是一个难题。

我知道你可以在命令行上“缩放”,如果你正在使用集群,但我不知道为什么你不能启动更多的实例,如果你正在使用fork。 这个不成立。

据我所知,PM2的所有命令也可以通过程序使用,包括scale 。 查看CLI.js查看所有可用的方法。

尝试在应用程序声明中使用force属性。 如果force是真的,你可以多次启动相同的脚本,这是PM2通常不允许的(根据申请声明文档 )

顺便说一句, autorestart默认是true