Улучшение парсинга head-запроса

This commit is contained in:
Book Pauk
2022-07-28 18:38:49 +07:00
parent 32dff128f4
commit f4a7482b3b

View File

@@ -26,8 +26,8 @@ class BUCServer {
this.periodicCheckWait = 500;//пауза, если нечего делать this.periodicCheckWait = 500;//пауза, если нечего делать
this.cleanQueryInterval = 300*dayMs;//интервал очистки устаревших this.cleanQueryInterval = 300*dayMs;//интервал очистки устаревших
this.oldQueryInterval = 30*dayMs;//интервал устаревания запроса на обновление this.oldQueryInterval = 14*dayMs;//интервал устаревания запроса на обновление
this.checkingInterval = 3*hourMs;//интервал проверки обновления одного и того же файла this.checkingInterval = 5*hourMs;//интервал проверки обновления одного и того же файла
this.sameHostCheckInterval = 1000;//интервал проверки файла на том же сайте, не менее this.sameHostCheckInterval = 1000;//интервал проверки файла на том же сайте, не менее
} else { } else {
this.maxCheckQueueLength = 10;//максимальная длина checkQueue this.maxCheckQueueLength = 10;//максимальная длина checkQueue
@@ -184,8 +184,8 @@ class BUCServer {
log(LM_WARN, `clean 'buc' table: deleted ${res.deleted}`); log(LM_WARN, `clean 'buc' table: deleted ${res.deleted}`);
} }
rows = await db.select({table: 'buc', count: true}); //rows = await db.select({table: 'buc', count: true});
log(LM_WARN, `'buc' table length: ${rows[0].count}`); //log(LM_WARN, `'buc' table length: ${rows[0].count}`);
now = Date.now(); now = Date.now();
//выборка кандидатов //выборка кандидатов
@@ -250,16 +250,20 @@ class BUCServer {
try { try {
let unchanged = true; let unchanged = true;
let size = 0;
let hash = ''; let hash = '';
const headers = await this.down.head(row.id); const headers = await this.down.head(row.id);
const etag = headers['etag'] || ''; const etag = headers['etag'] || '';
const modTime = headers['last-modified'] || ''; const modTime = headers['last-modified'] || '';
let size = parseInt(headers['content-length'], 10) || 0;
//log(row.id);
//log(`etag: ${etag}, modTime: ${modTime}, size: ${size}`)
if ((!etag || !row.etag || (etag !== row.etag)) if ((!etag || !row.etag || (etag !== row.etag))
&& (!modTime || !row.modTime || (modTime !== row.modTime)) && (!modTime || !row.modTime || (modTime !== row.modTime))
&& (!size || !row.size || (size !== row.size))
) { ) {
const downdata = await this.down.load(row.id); const downdata = await this.down.load(row.id);