#node.js #puppeteer #chromium #digital-ocean #droplet
#node.js #puppeteer #chromium #digital-ocean #капля
Вопрос:
Скребок, который я написал, отлично работает на моем ПК, ОС Windows, которая работает node.js v14.4.0.
Но когда я попытался запустить его на Digital Ocean Droplet, Ubunto machine, я получаю для некоторых страниц следующую ошибку: Page crashed!
с небольшим количеством информации.
Вот код для печати ошибки:
const handleClose = async (msg) =>{
console.log(msg)
page.close();
browser.close();
process.exit(1);
}
process.on("uncaughtException", (reason, p) => {
const a = `Possibly Unhandled Exception at: Promise , ${p}, reason: , ${reason}`
handleClose(a);
});
Как мне справиться с этим?
И что может вызвать это? поскольку это прекрасно работает на моем ПК с Windows.
Комментарии:
1. Какой размер капли? Вероятно, вам нужно пойти дальше.
2. Это минимальный размер, 1G RAM 1vCPU. Но разве этого не будет достаточно для удаления 1 простого веб-сайта? Я закрываю все страницы после завершения, поэтому одновременно открывается только 1 страница. И droplet выполняет только этот процесс.
Ответ №1:
Я добавил все конфигурации памяти, которые я нашел в Интернете и связанные:
const args = [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-infobars',
'--window-size=1366,768',
'--unlimited-storage',
'--full-memory-crash-report',
'--disable-dev-shm-usage',
'--force-gpu-mem-available-mb',
'--disable-gpu'
]
Но это не помогло.
Благодаря pguardiario note я просто обновляю Droplet с 1G RAM до 2G. И это сделало свое дело.
Мне кажется странным, что для очистки простого веб-сайта требуется более 1G, поэтому я думаю, что Puppeteer требует много ресурсов для запуска.
ОБНОВЛЕНИЕ У меня был сбой страницы anther, но на этот раз это было связано с тем, что сервер использовал всю память. Итак, я удалил все эти аргументы из Puppeteer:
'--unlimited-storage',
'--full-memory-crash-report',
'--disable-dev-shm-usage',
'--force-gpu-mem-available-mb',
'--disable-gpu'
И где остались только базовые:
const args = [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-infobars',
'--window-size=1366,768'
]
И теперь он стабилен.
Итак, я думаю, это нужно использовать осторожно и удалять, если это действительно не нужно.