У меня такой код:
puppeteer.launch().then(async browser => {
for (let id of ids) {
try {
const page = await browser.newPage();
//const url = 'chrome://crash';
await page.goto(url + id)
await page.waitFor(5000);
await page.screenshot({
path: path.join(__dirname, "../public/images/screenshots/" + id + ".png"),
clip: { x: 10, y: 70, width: 780, height: 470}
});
} catch (error) {
console.log('Exception', id, error.message);
page.close();
}
};
browser.close();
});
Обычно он работает нормально, но у меня проблемы с определенной страницей (с URL-адресом, которым, к сожалению, я не могу поделиться).
Эта страница пытается загрузить ГБ данных и приводит к сбою Chrome, поэтому я предполагаю, что это также вызывает сбой Chromium.
Ошибка, которую я вижу на этой странице: Exception 6766 Navigation Timeout Exceeded: 30000ms exceeded
. Это нормально, но, похоже, на этом не заканчивается - из-за этого весь мой сервер зависает, я думаю, потому что он пытается использовать слишком много памяти на уровне ОС.
Как я могу предотвратить зависание моего сервера и правильно с этим справиться? Могу ли я предоставить Chromium флаги для ограничения используемой памяти и постепенного отказа? Я также не уверен, что моя обработка ошибок в целом правильная, поэтому любые советы будут оценены.