在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