puppeteer handling change

This commit is contained in:
2026-03-21 18:08:17 -05:00
parent 81ab5df13f
commit cc154141bd
2 changed files with 29 additions and 16 deletions

View File

@@ -43,8 +43,8 @@ async function initBrowser() {
'--disable-dev-shm-usage',
'--disable-gpu',
'--disable-software-rasterizer',
'--no-zygote',
'--single-process'
'--no-zygote'
// '--single-process' WURDE ENTFERNT!
],
protocolTimeout: 180000,
timeout: 180000
@@ -54,12 +54,16 @@ async function initBrowser() {
// Pass browser to PDF service
setBrowser(browser);
// Restart browser if it crashes
// Restart browser if it crashes (mit Atempause!)
browser.on('disconnected', () => {
console.log('[BROWSER] Browser disconnected, restarting...');
console.log('[BROWSER] Browser disconnected. Waiting 5 seconds before restarting...');
browser = null;
setBrowser(null);
// 5 Sekunden warten, bevor ein Neustart versucht wird
setTimeout(() => {
initBrowser();
}, 5000);
});
}
return browser;

View File

@@ -33,8 +33,11 @@ async function generatePdfFromHtml(html, options = {}) {
}
const page = await browser.newPage();
//await page.setContent(html, { waitUntil: 'networkidle0', timeout: 60000 });
await page.setContent(html, { waitUntil: 'load', timeout: 5000 });
try {
// Erhöhtes Timeout: 5 Sekunden sind unter Docker manchmal zu wenig.
// Besser auf 15 Sekunden (15000) setzen, um den Fehler von vornherein zu vermeiden.
await page.setContent(html, { waitUntil: 'load', timeout: 15000 });
const pdf = await page.pdf({
format,
@@ -42,8 +45,14 @@ async function generatePdfFromHtml(html, options = {}) {
margin
});
await page.close();
return pdf;
} finally {
// Dieser Block wird IMMER ausgeführt, selbst wenn oben ein Fehler fliegt.
// Der Tab wird also zu 100% wieder geschlossen.
if (page) {
await page.close();
}
}
}
/**