如何重用cluster.task中的事件添加页面? (不要在任务完成后关闭页面,而是要重复使用它)

时间:2019-08-14 08:13:01

标签: node.js puppeteer puppeteer-cluster

cluster.task中,我添加了类似事件framenavigated,具有复杂的逻辑。

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

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

如何在工作人员中重用event added page


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

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


编辑:smaple代码!

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.task中重用framenavigated对象。

谢谢。 @ThomasDondorf

0 个答案:

没有答案