首页 > 解决方案 > 如何使用 Selenium 在 Heroku 上避免“进程运行 mem=544M(100.3%)”

问题描述

我正在尝试开发一个需要进行网络抓取的应用程序。这是一个复杂的抓取,所以我需要一个强大的工具,比如 Selenium。

我遇到的问题是,经过几次通话后,我开始出现错误:

Process running mem=544M(100.3%)

我当时尝试的是:

  1. 将JVM的启动和最大内存设置为64m!(是的,我的应用程序不需要太多内存,但什么也没做)。通过以下尝试,此选项也保持活动状态。
  2. 在每次使用时创建和退出 WebDriver (Chrome):它似乎可以工作,但它基本上没用,因为它需要 2 秒才能检索一个实例(糟糕的解决方案)
  3. 在异步中汇集一些实例只是为了避免那 2 秒:在 3 个实例之后,应用程序无法创建新实例并出现错误,例如缺少文件等等等等……无论如何,由于抓取,我每次都需要做很多事情如果我可以多次使用同一个 WebDriver,我可以避免
  4. 创建 WebDriver 的包装器,quit并在多次使用后重新创建包装器:20 分钟后错误再次出现

我想知道是否有替代 2 的解决方案。
我读了很多答案说你需要quit/ close,但我只打开一个窗口,重复使用它比每次我必须创建一个新实例更有效做点什么……你有什么建议吗?

技术数据:

标签: javaseleniumselenium-webdriverherokuselenium-chromedriver

解决方案


推荐阅读