Javascript Node.js:使用通用池时资源未获得释放
我正在使用通用池npm模块,并试图创建一个pupeter池,但没有调用工厂中的destroy方法 我能获得资源,但不能释放,也不能摧毁 下面是代码的相关部分 浏览器池.jsJavascript Node.js:使用通用池时资源未获得释放,javascript,node.js,Javascript,Node.js,我正在使用通用池npm模块,并试图创建一个pupeter池,但没有调用工厂中的destroy方法 我能获得资源,但不能释放,也不能摧毁 下面是代码的相关部分 浏览器池.js const genericPool = require('generic-pool'); const puppeteer = require('puppeteer'); module.exports = function() { const browserParams = process.env.NODE_ENV
const genericPool = require('generic-pool');
const puppeteer = require('puppeteer');
module.exports = function() {
const browserParams = process.env.NODE_ENV == 'development' ? {
headless: false,
devtools: false,
executablePath: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'
}
:
{
headless: true,
devtools: false,
executablePath: 'google-chrome-unstable',
args: ['--no-sandbox', '--disable-dev-shm-usage']
};
const factory = {
create: function() {
return puppeteer.launch(browserParams);
},
destroy: function(instance) {
console.log('closing browser');
instance.close();
},
}
const opts = {
max: 2
};
return genericPool.createPool(factory, opts);
};
const pool = require('./browser-pool');
async function performExport(params){
const poolInstance = pool();
const resp = poolInstance.acquire().then(async function(c){
// do processing
poolInstance.release(c); //***Does not call destroy**
});
}
processor.js
const genericPool = require('generic-pool');
const puppeteer = require('puppeteer');
module.exports = function() {
const browserParams = process.env.NODE_ENV == 'development' ? {
headless: false,
devtools: false,
executablePath: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'
}
:
{
headless: true,
devtools: false,
executablePath: 'google-chrome-unstable',
args: ['--no-sandbox', '--disable-dev-shm-usage']
};
const factory = {
create: function() {
return puppeteer.launch(browserParams);
},
destroy: function(instance) {
console.log('closing browser');
instance.close();
},
}
const opts = {
max: 2
};
return genericPool.createPool(factory, opts);
};
const pool = require('./browser-pool');
async function performExport(params){
const poolInstance = pool();
const resp = poolInstance.acquire().then(async function(c){
// do processing
poolInstance.release(c); //***Does not call destroy**
});
}
我错过了一些东西,但不确定是什么。任何帮助都会非常好。谢谢