Доброго времени суток.
Недавно начал знакомиться с Node, разумеется, возникли проблемы с асинхронностью...
Необходимо пройти по элементам массива (2 - 3 тысячи) и обработать каждый элемент с помощью внешних скриптов (pars.parsRo/python pdf_adn_json.py).
const {exec} = require('child_process');
var pars = require("./roParser.js");
...
async.each(line, function(element){
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');
}
},
...
При запуске, скрипт вызывает около тысячи процессов (пока машина не будет загружена полностью). Думаю, что это как-то неправильно...
Подскажите, пожалуйста, можно ли ограничить количество запусков внешних функций?
Если можно, то как?
Заранее спасибо.