I currently have a problem generating two thousand pdf's using node.js and bull.
Indeed, I manage to generate about 400 pdf. Then I got this error message:
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
This is the bull queue and the function that generate the pdf files:
let myFirstQueue = new Bull(
"firsttdssss",
{
redis: { port: 6379 },
},
{
defaultJobOptions: { removeOnComplete: true, removeOnFail: true },
}
);
myFirstQueue.setMaxListeners(30);
for (let i = 0; i < 500; i++) {
await myFirstQueue.add(data[i]);
}
let { generatePdf } = await import("~/lib/survey");
myFirstQueue.process(async job => {
let filename = kebabCase(
`${campaign.title} - ${job.data.employee.fullName.toLowerCase()} - ${moment().format("DD/MM/YYYY")} `
);
return generatePdf(campaign.template.body, job.data, filename, 210, 297);
});
myFirstQueue.on("progress", () => {
console.log("progresds");
});
myFirstQueue.on("completed", () => {
console.log("completed");
});
I have already tried to increase the node.js memory leak using :$env:NODE_OPTIONS="--max-old-space-size=8192"