我产生的节点进程一直在休眠

时间:2019-03-10 08:08:24

标签: node.js multithreading spawn

我正在具有4个核心的AWS实例上运行一个程序。 (NODE v8.10)程序在计时器上,例如,每15分钟处理一次不同的文档。程序启动时,所有文档都已在服务器中本地准备就绪。

由于某种原因,我注意到通常只有一个节点进程正在运行,而其余的节点进程正在休眠。有时,我看到其他节点从睡眠状态变为运行状态为ms。因此,处理过程确实很慢/不一致。有时几分钟之内即可处理文档,有时数小时即可。

为什么会这样?在4核计算机上,我希望有1个以上的并发节点进程在运行。不必等待,因为每个节点都是自己的进程。

function runOnTimer(key){
  let args = ['--max-old-space-size=6144','./runScript', key]
  const logfile = path.join(appRoot, `/log/${key}.log`)
  let feedLog = fs.openSync(logfile, 'a');
  let feedSpawn = spawn(`node`, args, {
        stdio: ['ignore', feedLog, feedLog]
  });
  feedSpawn.on('error', err => {
    feed.log(`failed: ${err.message}`)    
  })

  feedSpawn.on('exit', code => {
    feed.log(`exited with code: ${code}`)
    if(feedLog !== undefined){
      fs.closeSync(feedLog);
    }    
  });
}

enter image description here

0 个答案:

没有答案