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

View File

@@ -33,8 +33,11 @@ async function generatePdfFromHtml(html, options = {}) {
} }
const page = await browser.newPage(); 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({ const pdf = await page.pdf({
format, format,
@@ -42,8 +45,14 @@ async function generatePdfFromHtml(html, options = {}) {
margin margin
}); });
await page.close();
return pdf; 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();
}
}
} }
/** /**