Chrome без головы для сканирования изображений максимально использует процессор (то есть 100%) - PullRequest
0 голосов
/ 14 октября 2019

Я использую хром без головы для веб-сканирования. Первоначально он работает довольно гладко, но через некоторое время он использует максимальный процессор, т.е. 100%, что приводит к сбою моей системы. Кто-нибудь, кто может помочь мне узнать об ошибке?

Я пытался закрыть браузер после каждого выполнения, но ошибка все еще существует.

const fs = require('fs');

client.query("SELECT DISTINCT url,article_id FROM public.content_paraarticle where article_id IN(Select id from public.content_mainarticle where image_url='')",(async(err,res,fields)=>{
if (err)  throw err;
for(var i=0;i<res.rows.length;i++)
{
    var str1='.png';
    var id=(res.rows[i].article_id);
    var str=id+str1;
    console.log(str);
    var url=(res.rows[i].url);

    if(url.match(/thehindu.com/gi)){

    console.log('Belongs to Hindu');
    console.log(url);
    try{

    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    page.setViewport({ width: 1280, height: 926 });
    let result
    await Promise.race([
    console.log('..........taken'),
    result = await page.goto(url, {waitUntil: 'networkidle2',}),
    new Promise(x => setTimeout(x, 30000)),
    console.log('.........................'),
    ]);

    console.log(result.status());


    const Image = await page.$('body > div.container-main > div.jscroll > div > div > div > section > div > div > div > div:nth-child(2) > div.lead-img-cont > div > picture > img');
    console.log('screenshot started to get taken');

    await Image.screenshot({
    path: str,
    omitBackground: true,
    });

    console.log('screenshot taken');
    await browser.close();
    }

    catch(err){

        console.log("err.message");

                fs.appendFile("test.txt", "\n"+str+"\n", function(err) {
                if(err) {
                      return console.log(err);
                        }

                 console.log("The file was saved!");
                  }); 
        continue;
        await browser.close();


    }

} 
    else if(url.match(/livemint/gi)){

    console.log('Belongs to livemint');
    console.log(url);
    try{

    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    page.setViewport({ width: 1280, height: 926 });
    let result
    await Promise.race([
    console.log('..........taken'),
    result = await page.goto(url, {waitUntil: 'networkidle2',}),
    new Promise(x => setTimeout(x, 30000)),
    console.log('.........................'),
    ]);

    console.log(result.status());


    const Image = await page.$('figure > img');
    console.log('screenshot started to get taken');

    await Image.screenshot({
    path: str,
    omitBackground: true,
    });

    console.log('screenshot taken');
    await browser.close();
    }

    catch(err){

        console.log("err.message");

                fs.appendFile("test.txt", "\n"+str+"\n", function(err) {
                if(err) {
                      return console.log(err);
                        }

                 console.log("The file was saved!");
                  }); 
        continue;
        await browser.close();


    }

} 


else {
    console.log("Doesn't belongs to thehindu or livemint");
}
}

client.end()
}));

process.on('unhandledRejection', (reason, p) => {
  console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);

});

...