Tengo un problema con la pérdida de memoria de EventEmitter detectada
Tengo una función que inicia el navegador así.
async function startBrowser() { const revisionInfo = await browserFetcher.download("901912"); const browser = await puppeteer.launch({ executablePath: revisionInfo.executablePath, args: [ "--no-sandbox", "--disable-gpu", "--disable-dev-shm-usage", "--disable-setuid-sandbox", "--no-first-run", "--no-zygote", "--single-process", ], }); const page = await browser.newPage(); return { browser, page }; }Una de mis funciones se asigna a través de una cantidad de elementos como
const work = (stuff) => { const workTodo = stuff.map(item = { setTimeout(() => { anotherFunction(some params) }, some time variable all different seconds } await Promise.all(workTodo); }y en otra función()
anotherFunction(someParams) { const { browser, page } = await startBrowser(); try { await browser.newPage(); await page.goto('stuff'); await page.waitForSelector('stuff'); await page.click('stuff'); await page.close(); await browser.close(); } catch (error) { console.log('error', error); return }La lógica en anotherFunction() funciona alrededor del 70-80 % del tiempo, pero a veces se excede el tiempo de espera en las llamadas a waitForSelector y, a veces, se producen errores de pérdida de memoria.
¿Estoy creando demasiados navegadores? y no cierra bien?
¿Alguien que sepa titiritero me puede decir que estoy haciendo mal?