我有以下函数setInterval
,它每秒都在一个循环上运行。我在startScript
函数中有一个spawn进程,它启动了一个外部python脚本。循环第一次完美运行;但是,当它循环第二次时,startScript
功能不会启动。为什么是这样?无论如何都要重新产生"这个过程?
请注意,脚本成功运行一次后,只需记录"关闭",表示脚本已关闭。
var spawn = require('child_process').spawn
var path = require('path');
var split = require('split');
var pythonData = [];
function startScript(){
var pyScript = spawn('python', [ path.join(__dirname, 'script.py') ]);
pyScript.stdout.pipe(split()).on('data', function(lineChunk){
if (pythonData.length >=25){
return pyScript.kill();
}
pythonData.push(lineChunk.toString());
});
pyScript.on('close', function(code){
console.log("closed");
});
}
setInterval( function(){
if(some criteria){
startScript();
}
else if (other criteria){
startScript();
}
},1000);