0

cluster.task中,我添加了一些事件,例如framenavigated具有复杂逻辑的事件。

我在我的 API 服务器中使用 puppeteer-cluster,当请求进入时,添加到队列中,工作人员按顺序完成工作。

但是每次请求到来时,都会framenavigated使用 cpu 再次注册事件。

如何event added page在工人中重用?


我不想关闭event added pagecluster.task并在下一个请求中重用。可能吗?

如果不能,我想自定义您的库,不要在每次请求时打开/关闭页面,请您指出 cluster.task 页面打开/关闭部分的部分在哪里?


编辑:简单代码!

await cluster.task(async ({ page, data : url }) => {       
    /* 
        DO NOT WANT TO DO THIS EVENT REGISTERING JOB WITH EVERY REQUEST.
        ONLY WANT TO DO THIS ONCE, AND REUSE WITH NEXT `queue`, `execute` REQEUST COMES.
    */
    page.on("framenavigated", async () =>  {
            // Some complex job here.        
    })



    /* 
        WANT TO DO WITH EVERY REQUEST WITH REUSING EVENT REGISTERED `PAGE` 
        example : page jobs, I want to do this with every requests comes.
    */
    await page.goto(url)
    console.log(page.url())
})

我只想在注册事件的情况下重用page对象。cluster.taskframenavigated

谢谢你。@ThomasDondorf

4

0 回答 0