如何使用PM2生成worker

时间:2016-05-08 22:23:33

标签: node.js worker pm2

通过使用PM2,我失去了运行本机群集的能力,这种群集是我用来产生工作者的,例如:

if (cluster.isMaster) {
  cluster.schedulingPolicy = cluster.SCHED_NONE;
  for (var i = 1; i < CPUs; i++) {
    cluster.fork();
  }
  Object.keys(cluster.workers).forEach(function(id) {
    cluster.workers[id].on('message', logpi);
  });
  cluster.on('death', function(worker, code, signal) {
    console.error('Death:', worker.pid);
    cluster.fork();
  });
  cluster.on('exit', function(worker, code, signal) {
    console.error('Exit:', worker.pid);
    cluster.fork();
  });
  require('./worker.js');
} else {
  require('./server.js');
}

在集群模式$ pm2 start app.js -i 0启动PM2时,如何生成工作人员?

1 个答案:

答案 0 :(得分:1)

当使用pm2的集群模式,pm2实现master部分时,没有办法将worker.js注入master(pm2)。

您的app.js没用,您可以直接启动您的应用使用server.js,如下所示:

pm2 start server.js -i 0

您可以将worker.js注入server.js,例如尝试锁定文件(https://github.com/baudehlo/node-fs-ext),如果已锁定,则运行worker.js。