【发布时间】:2018-09-10 20:39:48
【问题描述】:
我在 Linux 主机上通过 Node API 使用 puppeteer。我的用例是为 WebGL 地图创建不同大小的屏幕截图。
节点脚本通过命令行参数调用,它会生成一些不同大小的屏幕截图,然后退出。
我的问题是 puppeteer 进程会大大降低网络服务器的速度,因为它们位于同一主机上。
如何确保 puppeteer 进程和 Chrome 子进程以最低/空闲进程优先级启动?
这是我的 Node 脚本的框架:
const puppeteer = require('puppeteer')
const SCREENSHOT_SIZES = ...
async function run() {
const browser = await puppeteer.launch({})
for (const size of SCREENSHOT_SIZES) {
const page = await browser.newPage()
await page.setViewport({
width: size.w,
height: size.h,
})
try {
await page.goto(url, { waitUntil: 'networkidle0', timeout: 60 * 1000 })
} catch (error) {
console.error(error)
}
await page.screenshot({
path: ...
})
}
await browser.close()
}
run()
【问题讨论】:
-
如果你能得到他们的PID,你可以试试
v10.10.0中引入的os.setPriority()。
标签: node.js google-chrome puppeteer headless-browser google-chrome-headless