PM2 在运行时更改集群进程大小
PM2 change cluster processes size at runtime
有谁知道是否可以在 NodeJS PM2 中更改应用程序在运行时的集群进程数?
问候
菲利普
以 json 格式指定 pm2 设置:
{
"apps": [{
"name": "server",
"script" : "index.js",
"instances": 2,
"exec_mode: "cluster",
"cwd": "/path/to/script"
}]
}
启动服务器:
pm2 start application.json
假设您想再添加 2 个实例,只需再次 运行 相同的命令:
pm2 start application.json
检查进程列表:
pm2 list
测试所有 4 个实例都是 运行 集群模式:
pm2 restart server
它将重新启动 4 个进程中的每一个。
您可以使用pm2 scale
在运行时垂直缩放进程数,注意它只适用于集群模式。
示例:
pm2 scale APPNAME 2
会将流程缩放到恰好 2 个实例。
pm2 scale APPNAME +2
将添加两个进程。
pm2 scale APPNAME -1
将删除一个进程。
在运行时(应用程序启动后),有两种方式"scale"应用程序:
1) 使用命令行(记录在 "Scaling your cluster in realtime" 下的 here),如下所示:
pm2 scale <app name> <n>
请注意,这可以是集群将扩展或缩小到的一致数字。它也可以是添加项,例如 pm2 scale app +3,在这种情况下,将再向集群添加 3 个 worker。
2) 使用编程 API(文档为 here,但未记录比例)。由于未记录在案,以下是您的操作方法:
pm2.scale(<APPNAME>, <SCALE_TO>, errback)
请注意,这是将放大或缩小到的数字,而不是添加或删除的数字。下面是连接并扩展到 4 个实例的完整示例:
var pm2 = require('pm2');
pm2.connect(function (err) {
pm2.scale('appname', 4, function(err, procs) {
console.log('SCALE err: ', err);
console.log('SCALE procs: ', procs);
});
});
有谁知道是否可以在 NodeJS PM2 中更改应用程序在运行时的集群进程数?
问候 菲利普
以 json 格式指定 pm2 设置:
{
"apps": [{
"name": "server",
"script" : "index.js",
"instances": 2,
"exec_mode: "cluster",
"cwd": "/path/to/script"
}]
}
启动服务器:
pm2 start application.json
假设您想再添加 2 个实例,只需再次 运行 相同的命令:
pm2 start application.json
检查进程列表:
pm2 list
测试所有 4 个实例都是 运行 集群模式:
pm2 restart server
它将重新启动 4 个进程中的每一个。
您可以使用pm2 scale
在运行时垂直缩放进程数,注意它只适用于集群模式。
示例:
pm2 scale APPNAME 2
会将流程缩放到恰好 2 个实例。pm2 scale APPNAME +2
将添加两个进程。pm2 scale APPNAME -1
将删除一个进程。
在运行时(应用程序启动后),有两种方式"scale"应用程序:
1) 使用命令行(记录在 "Scaling your cluster in realtime" 下的 here),如下所示:
pm2 scale <app name> <n>
请注意,这可以是集群将扩展或缩小到的一致数字。它也可以是添加项,例如 pm2 scale app +3,在这种情况下,将再向集群添加 3 个 worker。
2) 使用编程 API(文档为 here,但未记录比例)。由于未记录在案,以下是您的操作方法:
pm2.scale(<APPNAME>, <SCALE_TO>, errback)
请注意,这是将放大或缩小到的数字,而不是添加或删除的数字。下面是连接并扩展到 4 个实例的完整示例:
var pm2 = require('pm2');
pm2.connect(function (err) {
pm2.scale('appname', 4, function(err, procs) {
console.log('SCALE err: ', err);
console.log('SCALE procs: ', procs);
});
});