我正在具有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);
}
});
}