Небольшой тюнинг BUCServer

This commit is contained in:
Book Pauk
2024-07-26 00:49:39 +07:00
parent 2da1736c99
commit 613230256a
2 changed files with 10 additions and 8 deletions

View File

@@ -27,8 +27,8 @@ class BUCServer {
this.cleanQueryInterval = 300*dayMs;//интервал очистки устаревших this.cleanQueryInterval = 300*dayMs;//интервал очистки устаревших
this.oldQueryInterval = 14*dayMs;//интервал устаревания запроса на обновление this.oldQueryInterval = 14*dayMs;//интервал устаревания запроса на обновление
this.checkingInterval = 5*hourMs;//интервал проверки обновления одного и того же файла this.checkingInterval = 1*dayMs;//интервал проверки обновления одного и того же файла
this.sameHostCheckInterval = 1000;//интервал проверки файла на том же сайте, не менее this.sameHostCheckInterval = 10*1000;//интервал проверки файла на том же сайте, не менее
} else { } else {
this.maxCheckQueueLength = 10;//максимальная длина checkQueue this.maxCheckQueueLength = 10;//максимальная длина checkQueue
this.fillCheckQueuePeriod = 10*1000;//период пополнения очереди this.fillCheckQueuePeriod = 10*1000;//период пополнения очереди
@@ -262,7 +262,7 @@ class BUCServer {
let unchanged = true; let unchanged = true;
let hash = ''; let hash = '';
const headers = await this.down.head(row.id); const headers = await this.down.head(row.id, {timeout: 10*1000});
const etag = headers['etag'] || ''; const etag = headers['etag'] || '';
const modTime = headers['last-modified'] || ''; const modTime = headers['last-modified'] || '';
@@ -276,7 +276,7 @@ class BUCServer {
&& (!size || !row.size || (size !== row.size)) && (!size || !row.size || (size !== row.size))
) { ) {
const downdata = await this.down.load(row.id); const downdata = await this.down.load(row.id, {timeout: 10*1000});
size = downdata.length; size = downdata.length;
hash = await utils.getBufHash(downdata, 'sha256', 'hex'); hash = await utils.getBufHash(downdata, 'sha256', 'hex');
@@ -327,7 +327,7 @@ class BUCServer {
log(LM_ERR, e.stack); log(LM_ERR, e.stack);
} }
await utils.sleep(10); await utils.sleep(100);
} }
} }

View File

@@ -2,7 +2,7 @@ const https = require('https');
const axios = require('axios'); const axios = require('axios');
const utils = require('./utils'); const utils = require('./utils');
const userAgent = 'Mozilla/5.0 (X11; HasCodingOs 1.0; Linux x64) AppleWebKit/637.36 (KHTML, like Gecko) Chrome/70.0.3112.101 Safari/637.36 HasBrowser/5.0'; const userAgent = 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/113.0';
class FileDownloader { class FileDownloader {
constructor(limitDownloadSize = 0) { constructor(limitDownloadSize = 0) {
@@ -16,7 +16,6 @@ class FileDownloader {
headers: { headers: {
'accept-encoding': 'gzip, compress, deflate', 'accept-encoding': 'gzip, compress, deflate',
'user-agent': userAgent, 'user-agent': userAgent,
timeout: 300*1000,
}, },
httpsAgent: new https.Agent({ httpsAgent: new https.Agent({
rejectUnauthorized: false // решение проблемы 'unable to verify the first certificate' для некоторых сайтов с валидным сертификатом rejectUnauthorized: false // решение проблемы 'unable to verify the first certificate' для некоторых сайтов с валидным сертификатом
@@ -26,6 +25,9 @@ class FileDownloader {
if (opts) if (opts)
options = Object.assign({}, opts, options); options = Object.assign({}, opts, options);
if (!options.timeout)
options.timeout = 300*1000;//5 min
try { try {
const res = await axios.get(url, options); const res = await axios.get(url, options);
@@ -77,8 +79,8 @@ class FileDownloader {
const options = { const options = {
headers: { headers: {
'user-agent': userAgent, 'user-agent': userAgent,
timeout: 10*1000,
}, },
timeout: 10*1000,
}; };
const res = await axios.head(url, options); const res = await axios.head(url, options);