在cluster.task
中,我添加了一些事件,例如framenavigated
具有复杂逻辑的事件。
我在我的 API 服务器中使用 puppeteer-cluster,当请求进入时,添加到队列中,工作人员按顺序完成工作。
但是每次请求到来时,都会framenavigated
使用 cpu 再次注册事件。
如何event added page
在工人中重用?
我不想关闭event added page
,cluster.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.task
framenavigated
谢谢你。@ThomasDondorf