页面长时间打开后,提示器内存泄漏

时间:2019-05-25 09:07:34

标签: puppeteer

我的脚本打开了60个带代理的无头chrome浏览器,每个浏览器都有一页,并写在我的网站上的文本上进行测试,以测试它们是否受到firebase的命令。它工作正常,但2小时后它们开始变慢,然后便无法执行发送的命令了。我在chorme中使用这些标记:

'--proxy-server=downstream-proxy-address',
                  '--proxy-server='+myip,
                  '--no-sandbox',
                  '--unlimited-storage', 
                  '--disable-setuid-sandbox',
                  '--disable-dev-shm-usage',
                  '--disable-accelerated-2d-canvas',
                  '--disable-gpu',
                  '--window-size=1920x1080',

我尝试在10分钟后关闭每个浏览器,然后再次重新打开,但是它不起作用。解决此问题的最佳解决方案是什么?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。后来由于浏览器未在脚本中关闭而确定其原因。如果您正在捕获异常,请在finally块中添加await browser.close(),如下所示

try{
   var browser = await puppeteer.launch({
      headless: true,
      devtools: false,
      args: [
        '--no-sandbox','--disable-setuid-sandbox','--ignore-certificate-errors'],
      ignoreDefaultArgs: ['--enable-automation','--no-first-run'],
      executablePath: '/usr/bin/google-chrome'
     });
   var page = await browser.newPage();
   await page.goto(url, {timeout: 20000});
} catch (err) {
    console.log(err);
    response.status(500).send('ERROR: ' + err)
  } finally{
    await browser.close()
  }