Así que creé una aplicación simple de node.js para generar y enviar por correo electrónico automáticamente archivos PDF usando titiritero. Todo funciona perfectamente en mi servidor local, pero una vez que lo implemento en heroku, el servidor se agotará si intento crear más de 2 archivos PDF. Entonces, si solo creo 2 archivos PDF en mi aplicación heroku, funciona sin problemas, pero tan pronto como intento generar más que eso, la aplicación se agota.
Aquí está el ciclo que uso para generar cada PDF:
for (let x = 1; x <= numTickets; x++) { console.log(x, " / ", numTickets); try { const browser = await puppeteer.launch({ headless: true, args: ["--no-sandbox", "--disable-setuid-sandbox"], }); const page = await browser.newPage(); //compile html const content = await compile(template, { billing, id: id + "-" + `${x}`, campaign, }); options.attachments.push({ filename: `${billing.first_name}-housedoubleup-${id}-${x}.pdf`, path: `./${billing.first_name}-housedoubleup-${id}-${x}.pdf`, contentType: "application/pdf", }); await page.setContent(content); await page.emulateMediaType("screen"); await page.pdf({ path: `${billing.first_name}-housedoubleup-${id}-${x}.pdf`, format: "a5", printBackground: true, landscape: true, }); console.log("done"); } catch (e) { console.log("Error -> ", e); } if (x === numTickets) { sendEmail(options); } }Me pregunto si los 512 MB de RAM en mi nivel gratuito de heroku tal vez limitan el resto de los archivos PDF que se generan.
Si alguien tiene alguna idea de cómo ayudar o qué podría estar saliendo mal, realmente lo agradecería :)
En cada iteración, su ciclo crea una nueva instancia de navegador con una nueva página. Intenta usar,