Здравствуйте.
Вы используете модуль async, в нем есть очередь.
const WORKERS_COUNT = 10;
const queue = async.queue((element, done) => {
fullPathXrd.length=0;
fullPathXrd=localPath+element.proc;
async.waterfall([
function(callback){
if ((element.action!="D") && (fs.existsSync(fullPathXrd))){
if(fullPathXrd.lastIndexOf(".ro")===fullPathXrd.length-3){
pars.parsRo(fullPathXrd, callback);
}
if(fullPathXrd.lastIndexOf(".pdf")===fullPathXrd.length-4){
exec('python pdf_adn_json.py '+fullPathXrd, callback);
}
}else{
callback(null, 'fileNotExist');
}
},
...
], function(err, result) {
done(err, result)
});
}, WORKERS_COUNT);
async.each(line, function(element){
queue.push(element, callback);
});