-3

我想在 puppeteer-cluster 中创建无限循环

我的代码

但是大约 30 秒后,它导致空闲,我该怎么办?

4

2 回答 2

1

您的代码中可能会引发超时错误。你有两个选择:

选项 1:监听抛出的错误

由于您没有列出taskerror事件,因此不会处理在此过程中引发的任何错误。

cluster.on('taskerror', (err, data) => {
      // handle error
});

选项 2:增加超时值

如果您的任务需要很长时间,您可以增加该timeout值:

const cluster = await Cluster.launch({
    // ...
    timeout: 120000 // 2 minutes
});

通常,您不应在cluster.queue函数内部创建无限循环。队列为您处理确切的任务。您将工作排队,然后该cluster.task功能会处理它们。无需为任务创建无限循环。

于 2019-06-25T15:28:45.147 回答
0

30 秒是 puppeteer 中超时的默认时间,因此您可以尝试使用page.setDefaultNavigationTimeout(0)和禁用超时page.setDefaultTimeout(0)

请参阅:https
://github.com/GoogleChrome/puppeteer/issues/1514 和:https ://github.com/GoogleChrome/puppeteer/issues/2079

于 2019-06-19T13:13:40.630 回答