0

我正在使用 puppeteer 和 puppeteer-cluster 来截取收到的 HTML 的屏幕截图。为了“绕过”Node.js 的单线程处理,我使用了几个 Docker 容器。

问题是它随机延长了渲染时间——一旦相同的 HTML 在 200 毫秒内渲染,下一次(相同的配置、环境等)它是 8.2 秒。Node 的日志不包含任何错误。

它有什么解决办法吗?

4

1 回答 1

0

没有理由“绕过 Node.js 的单线程处理”,因为大多数 puppeteer 操作都是异步执行的。在我看来,这听起来像是您正在解决一个实际上并不存在的问题。

当您在脚本之外使用 docker 时,进程变慢(延长渲染时间)也是有道理的,因为除了脚本之外,操作系统还需要运行 docker。

检查系统资源

我假设您的系统除了每个容器中的多个 Chrome 实例之外,还不能运行多个 docker 容器。监控 CPU 和内存,看看您是否遇到任何限制。

于 2019-08-01T07:42:25.550 回答