下载并行页面的问题与puppeteer异步

时间:2018-02-12 09:46:28

标签: node.js puppeteer

似乎没有,当我下载一批网址时发生并行下载。网址下载的完成时间比单独下载时要晚。

我正在使用带有4GB RAM的2核心ec2机器。所有系统资源(cpu,ram,network)都非常稳定,批量大小为30 url。此处使用的连接超时为30秒。他们的网址最长可达15秒,20秒,23秒,单独运行时可在3-6秒内完成。不应该在这里发生并行IO。我错过了什么?

let startDate new Date();
let finishDate;
const puppeteer = require('puppeteer');

await puppeteer.launch().then(async browser => {
  const promises=[];
  urlArr.forEach(function(url){
  promises.push(browser.newPage().then(async page => {
          try{
              await page.goto(url.startsWith('http') ? url :     
              `http://${url}`, {
                    waitUntil: ['load'],timeout:connectionTimeOut
              });

              const html = await page.content();
              finishDate = new Date();
              console.log("html download complete for " + url + " - " +     
              finishDate.getTime() + " - " + (finishDate.getTime() - 
              startDate.getTime())/1000);

            }catch(err){
              console.log(err)
            }
       }))
  });
  await Promise.all(promises)
  await browser.close();
})

0 个答案:

没有答案