puppeteer handling change
This commit is contained in:
12
src/index.js
12
src/index.js
@@ -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;
|
||||||
|
|||||||
@@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user