Как я могу решить ошибку тайм-аута heroku h12 на node js используя puppeteer - PullRequest
0 голосов
/ 14 января 2020
const puppeteer = require("puppeteer");

const doPuppeteer = async(code) => {
  var Company={result:''};
  try{
    if(code.length!=6){//return error if code is not 6digits
      Company.result=false
      throw new Error('code length must be 6digits')
    }
    const browser = await puppeteer.launch({
        headless : true,
        args:['--no-sandbox',
         '--disable-setuid-sandbox',
       ],
    });
    //move to url page
    var url='https://www.nicebizinfo.com/ep/EP0100M002GE.nice?kiscode='+code
    const page = await browser.newPage();
    await page.goto(url,{waitUntil:'domcontentloaded'});

    //scrap company overview and name
    await page.waitForSelector('body > div:nth-child(31) > div > div.cTable.sp2.mb10 > table > tbody',{timeout:3000});
    var key=await page.evaluate(()=>{//scrap company overview keys
      return Array.from(document.querySelectorAll('body > div:nth-child(31) > div > div.cTable.sp2.mb10 > table > tbody>tr>td>div>p'))
      .map(tbody=>(tbody.textContent));
    })
    var val=await page.evaluate(()=>{//scrap company overview values
      return Array.from(document.querySelectorAll('body > div:nth-child(31) > div > div.cTable.sp2.mb10 > table > tbody>tr>td>div>strong'))
      .map(tbody=>(tbody.textContent));
    })

    var data={companyName:String(await page.evaluate(()=>{//scrap companyname
      return Array.from(document.querySelectorAll('body > div:nth-child(31) > div > div.header > h1'))
      .map(h1=>(h1.textContent))
    })), overview:''}

    await browser.close();

    var overview={};
    for(let i=0;i<key.length;i++){
      overview[key[i]]=val[i];
    }
    data.overview=overview;
    Company['data']=data;
    Company.result=true;
    return Company//return json style object
    await browser.close();
  }catch(error){
    console.log(error);
    Company['error']=String(error);
    return Company;
  }
}

exports.doScrap=doPuppeteer;

это мой код утилизации на heroku с использованием puppeteer

Я развернул этот код на heroku и после запуска этого кода на сервере вернулась ошибка тайм-аута H12, приведенная ниже (проверка изображения plz).

Мне интересно, почему это занимает более 30se c на сервере. На локально тот же код занимает 3 секунды максимум

Если есть какое-либо решение, пожалуйста, помогите мне. Код ошибки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...