I使用Ubuntu映像在Google Cloud上部署了一个NodeJS代码库。此代码将使用Puppeteer打开无头浏览器,渲染一些HTML并保存图像。目前,这大约需要4-6秒,这相对较快。
我认为,如果我要以某种方式打开无头浏览器(使用Google Chrome),并且只需使用这些代码就可以使用这些,则可能会更快。我还实施了BullMQ,可以在其中设置队列和工人来利用这些池。我可以巧妙地利用nodejs(和可选的bullMq)来管理此浏览器池吗?我也不确定记忆约束是什么,因为以无头的方式留下了许多Google Chrome浏览器“打开”
对于您的情况,而不是每次创建新的Puppeteer浏览器实例,您应该使用BullMQ和
。 Bullmq可帮助您有效地排队和分发作业。因此,多个工人可以并行处理任务。 PuppeTeer群集有助于维护浏览器池,您可以在工作中重复使用它们。因为群集可以使有限数量的浏览器打开并重复使用。
如果您同时使用BullMQ和Puppeteer群集,则可以帮助您提高速度,因为每次都不会打开浏览器。它也有助于减少内存使用量。引用了Webshare Academy的这篇PuppeTeerCluster文章,以及如何使用Node.js和Bullmq数字海洋教程来处理异步任务,由Stanley Ulili和Caitlin邮政处理。