// Process pool usage example
const ProcessPool = require('node-process-pool')
const taskParams = []
for (let i = 0; i < 10; i++) {
taskParams[i] = [i]
}
// Create a process pool instance
const processPool = new ProcessPool({
maxParallelProcess: 50, // Supports maximum number of process parallelism
timeToClose: 60 * 1000, // The maximum time for a single task to be executed
dependency: `const puppeteer = require('puppeteer');`, // task script dependencies
workDir: __dirname, // current directory
taskName: 'process_pool_genertor', // task script name
script: async function task(input) {
const browser = await puppeteer.launch({ headless: false, defaultViewport: { width: 1280, height: 1024 } });
const page = await browser.newPage();
console.log("pid是"+process.pid)
await page.goto("https://www.baidu.com")
await page.waitForTimeout(30000);
},
taskParams // Need to perform the task parameter list, two-dimensional array
})
// Process pools are used to handle large scale tasks
processPool.run()
对某个url进行并发请求
const ProcessPool = require("node-process-pool");
const taskParams = [];
for (let i = 0; i < 10; i++) {
taskParams[i] = ["https://www.baidu.com/"];
}
const processPool = new ProcessPool({
maxParallelProcess: 10, // Supports maximum number of process parallelism
timeToClose: 60 * 1000, // The maximum time for a single task to be executed
dependency: `const puppeteer = require("puppeteer-extra");const StealthPlugin = require("puppeteer-extra-plugin-stealth");`, // task script dependencies
workDir: __dirname, // current directory
taskName: "process_pool_genertor", // task script name
script: async function task(url) {
console.log(url);
puppeteer.use(StealthPlugin());
let browser =await puppeteer.launch({
headless: false,
defaultViewport: { width: 1280, height: 1024 },
});
const page = await browser.newPage();
console.log("pid是" + process.pid);
await page.goto(url[0]);
},
taskParams, // Need to perform the task parameter list, two-dimensional array
});
processPool.run();