/
usr
/
local
/
lib
/
node_modules
/
pm2
/
lib
/
God
/
/usr/local/lib/node_modules/pm2/lib/God
mkdir
upload
Name
Size
Mode
Actions
ActionMethods.js
25069
0644
edit
dl
rm
ClusterMode.js
2810
0644
edit
dl
rm
ForkMode.js
8995
0644
edit
dl
rm
Methods.js
6752
0644
edit
dl
rm
Reload.js
6226
0644
edit
dl
rm
Edit:
/usr/local/lib/node_modules/pm2/lib/God/ClusterMode.js
(2810B)
/** * Copyright 2013-2022 the PM2 project authors. All rights reserved. * Use of this source code is governed by a license that * can be found in the LICENSE file. */ 'use strict'; /** * @file Cluster execution functions related * @author Alexandre Strzelewicz <as@unitech.io> * @project PM2 */ var cluster = require('cluster'); var Utility = require('../Utility.js'); var pkg = require('../../package.json'); /** * Description * @method exports * @param {} God * @return */ module.exports = function ClusterMode(God) { /** * For Node apps - Cluster mode * It will wrap the code and enable load-balancing mode * @method nodeApp * @param {} env_copy * @param {} cb * @return Literal */ God.nodeApp = function nodeApp(env_copy, cb){ var clu = null; console.log(`App [${env_copy.name}:${env_copy.pm_id}] starting in -cluster mode-`) if (env_copy.node_args && Array.isArray(env_copy.node_args)) { cluster.settings.execArgv = env_copy.node_args; } env_copy._pm2_version = pkg.version; try { // node.js cluster clients can not receive deep-level objects or arrays in the forked process, e.g.: // { "args": ["foo", "bar"], "env": { "foo1": "bar1" }} will be parsed to // { "args": "foo, bar", "env": "[object Object]"} // So we passing a stringified JSON here. clu = cluster.fork({pm2_env: JSON.stringify(env_copy), windowsHide: true}); } catch(e) { God.logAndGenerateError(e); return cb(e); } clu.pm2_env = env_copy; /** * Broadcast message to God */ clu.on('message', function cluMessage(msg) { /********************************* * If you edit this function * Do the same in ForkMode.js ! *********************************/ if (msg.data && msg.type) { return God.bus.emit(msg.type ? msg.type : 'process:msg', { at : Utility.getDate(), data : msg.data, process : { pm_id : clu.pm2_env.pm_id, name : clu.pm2_env.name, rev : (clu.pm2_env.versioning && clu.pm2_env.versioning.revision) ? clu.pm2_env.versioning.revision : null, namespace : clu.pm2_env.namespace } }); } else { if (typeof msg == 'object' && 'node_version' in msg) { clu.pm2_env.node_version = msg.node_version; return false; } return God.bus.emit('process:msg', { at : Utility.getDate(), raw : msg, process : { pm_id : clu.pm2_env.pm_id, name : clu.pm2_env.name, namespace : clu.pm2_env.namespace } }); } }); return cb(null, clu); }; };
Save
cmd:
run