Дочерний процесс внезапно завершает работу при выполнении в node.js

Итак, я работаю над проектом, и мне нужно преобразовать офисные файлы в PDF-файлы, а затем в изображения. Я написал и интегрировал все в один скрипт node.js, но по какой-то причине скрипт продолжает обходить синхронное создание дочернего процесса. Вот код:

    down.download(parsed_url);
            var f_name=obj.doc;
            var ext=f_name.slice(f_name.length-4);
            var w_path="C:\\Users\\Akshay\\Desktop\\conv_Scripts\\word_pdf.ps1";
            var e_path="C:\\Users\\Akshay\\Desktop\\conv_Scripts\\excel_pdf.ps1";
            var p_path="C:\\Users\\Akshay\\Desktop\\conv_Scripts\\power_pdf.ps1";
            var file_name=f_name.slice(0,f_name.length-5);
           console.log(ext);
           console.log(f_name);
           console.log(file_name);

            if(ext==="docx"){
             word.wordpdf(w_path);           

            } 

        else if(ext==="xlsx"){
         excel.excelpdf(e_path);}
        else if(ext==="pptx"){
         ppt.pptpdf(p_path);
         console.log("Done converting to PD");
        }
        else if(ext==".pdf"){
         img.img(f_name);

        }
    else{
     console.log("Can't convert to PDF");
    }

crawlpdf.crawlpdf(file_name,function(collect){
 collect.forEach(function(col){
   img.img(col);
   console.log('Done!');


 });

функции wordpdf, excelpdf и pptpdf одинаковы по своей структуре. Я запишу код модуля wordpdf здесь:

var spawn=require('child_process').spawnSync,
    child;

exports.wordpdf=function(filepath){
    child=spawn("powershell.exe",[filepath]);


};

Проблема в том, что когда я запускаю скрипт, он показывает мне «Готово преобразование в PD» (поскольку загруженный файл был в формате ppt), но я не нахожу pdf загруженного файла. Скрипты .ps1 в пути уже проверены и проблем с ними нет. Если бы вы могли пролить немного света, это было бы действительно огромной помощью для меня.

Спасибо.


person Ankit Kulshrestha    schedule 10.08.2015    source источник
comment
что говорит вывод spawnSync?   -  person hassansin    schedule 10.08.2015
comment
Если вы спрашиваете о какой-либо ошибке, то ее нет. Тем не менее, spawnsync точно порождает правильный сценарий оболочки, но не конвертирует в pdf для PowerPoint. Для слова он конвертирует, но не конвертирует его в изображения.   -  person Ankit Kulshrestha    schedule 10.08.2015


Ответы (1)


Хорошо, если кто-то еще столкнется с такой же проблемой, вот объяснение того, что пошло не так:

Сообщение, поступающее из очереди сообщений RabbitMQ, имеет небольшой размер. Следовательно, когда сообщение поступает, оно быстро потребляется, что приводит к условиям гонки в коде. Для лучшей и более точной производительности попробуйте проанализировать и записать сообщение в файл, а затем использовать асинхронный модуль для выполнения необходимых шагов.

person Ankit Kulshrestha    schedule 11.08.2015