From f4a7482b3b5b05f3bb0f0bb6a12510b6e0c3615a Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Thu, 28 Jul 2022 18:38:49 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BF=D0=B0=D1=80=D1=81=D0=B8=D0=BD=D0=B3=D0=B0?= =?UTF-8?q?=20head-=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/core/BookUpdateChecker/BUCServer.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/server/core/BookUpdateChecker/BUCServer.js b/server/core/BookUpdateChecker/BUCServer.js index b557e90a..2645d971 100644 --- a/server/core/BookUpdateChecker/BUCServer.js +++ b/server/core/BookUpdateChecker/BUCServer.js @@ -26,8 +26,8 @@ class BUCServer { this.periodicCheckWait = 500;//пауза, если нечего делать this.cleanQueryInterval = 300*dayMs;//интервал очистки устаревших - this.oldQueryInterval = 30*dayMs;//интервал устаревания запроса на обновление - this.checkingInterval = 3*hourMs;//интервал проверки обновления одного и того же файла + this.oldQueryInterval = 14*dayMs;//интервал устаревания запроса на обновление + this.checkingInterval = 5*hourMs;//интервал проверки обновления одного и того же файла this.sameHostCheckInterval = 1000;//интервал проверки файла на том же сайте, не менее } else { this.maxCheckQueueLength = 10;//максимальная длина checkQueue @@ -184,8 +184,8 @@ class BUCServer { log(LM_WARN, `clean 'buc' table: deleted ${res.deleted}`); } - rows = await db.select({table: 'buc', count: true}); - log(LM_WARN, `'buc' table length: ${rows[0].count}`); + //rows = await db.select({table: 'buc', count: true}); + //log(LM_WARN, `'buc' table length: ${rows[0].count}`); now = Date.now(); //выборка кандидатов @@ -250,16 +250,20 @@ class BUCServer { try { let unchanged = true; - let size = 0; let hash = ''; const headers = await this.down.head(row.id); const etag = headers['etag'] || ''; 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)) && (!modTime || !row.modTime || (modTime !== row.modTime)) + && (!size || !row.size || (size !== row.size)) ) { const downdata = await this.down.load(row.id);