【发布时间】:2019-08-05 23:43:56
【问题描述】:
试图让 Heroku 运行一些 Puppeteer 作业。在本地,它有效。它很慢,但它有效。监控 OS X Activity Monitor 中的内存,它不会超过 50MB。但是当我将此脚本部署到 Heroku 时,我每次都会得到一个Memory quota exceeded,而且内存占用要大得多。
查看日志,我收到消息:
Process running mem=561M(106.5%) .Error R14 (Memory quota exceeded) .Restarting .State changed from up to starting
要么活动监视器没有正确报告内存,要么只有在 Heroku 上运行脚本时出现问题。我无法想象为什么 25 页的页面抓取会是 561M。
此外,由于 Puppeteer 脚本必须包含在 try/catch 中——内存错误导致 Dyno 崩溃并重新启动。当 Dyno 重新启动时,浏览器会挂起。所以restarting 没有什么好处。有没有办法在 Heroku 上捕获“大多数”错误,但在出现内存 R14 错误时抛出?
【问题讨论】: