Показать сообщение отдельно
  #2 (permalink)  
Старый 21.05.2018, 12:11
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

Здравствуйте.
Вы используете модуль 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);             
});
Ответить с цитированием