From c2866e5cb1a929d4cc7317d1e4a0919bc851e781 Mon Sep 17 00:00:00 2001 From: spiduler Date: Fri, 23 Oct 2020 15:41:15 +0900 Subject: [PATCH] sdfsdf --- src/component/SeleniumBrowser.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/component/SeleniumBrowser.js b/src/component/SeleniumBrowser.js index 68f78ee..e42cdf3 100644 --- a/src/component/SeleniumBrowser.js +++ b/src/component/SeleniumBrowser.js @@ -9,6 +9,7 @@ const logger = require("logops") class SeleniumBrowser { constructor() { this.config = { + browserFullCount: 0, useHub: true, browser: 'chrome', browserArgs: ['--no-sandbox', '--headless', '--disable-dev-shm-usage', '--proxy-server=spiduler-tor:8118'] } @@ -34,7 +35,7 @@ class SeleniumBrowser { }) } }, { - max: 10, min: 1, testOnBorrow: true, acquireTimeoutMillis: 30000 + max: 2, min: 1, testOnBorrow: true, acquireTimeoutMillis: 30000 }); this.pool.on('factoryCreateError', function (err) { @@ -44,6 +45,17 @@ class SeleniumBrowser { this.pool.on('factoryDestroyError', function (err) { logger.error({ message: err.message }, 'pool error') }) + + this.pool.use(driver => { + if(this.pool.available == 0) browserFullCount++ + if(browserFullCount > 100) { + this.pool.clear() + } + return driver.getSession().then(s => driver).catch(err => { + this.pool.destroy(driver) + throw new Error('Driver session expired pool should create new instance') + }) + }) } getDriver() {