1 回答

TA贡献1780条经验 获得超1个赞
puppeteer-cluster 的作者在这里。
来自文档的引用:
cluster.queue(..)
: [...] 请注意,出于向后兼容性的原因,此函数仅返回 Promise。此函数不会异步运行,会立即返回。
cluster.execute(...)
: [...] 就像 一样Cluster.queue
,只是这个函数返回一个 Promise,它会在任务执行后被解析。如果在执行过程中发生错误,该函数将拒绝抛出错误的 Promise。不会触发“taskerror”事件。
何时使用哪个函数:
cluster.queue
如果您想对大量作业(例如 URL 列表)进行排队,请使用。任务功能需要通过将结果打印到控制台或将它们存储到数据库来处理存储结果。使用
cluster.execute
,如果你的任务函数返回一个结果。这仍会将作业排入队列,因此queue
除了等待作业完成之外,这就像调用一样。在这种情况下,最常见的是存在“空闲集群”,当请求到达服务器时使用该集群(如您的示例代码中所示)。
所以,你肯定要使用cluster.execute
作为你要等待任务结果的函数。您看不到任何错误的原因是(如上所述)cluster.queue
函数的错误是通过taskerror
事件发出的。该cluster.execute
错误是直接抛出(无极被拒绝)。最有可能的是,在这两种情况下,您的作业都失败了,但只有在cluster.execute
添加回答
举报