From 21ec7df1e7701e6165d5c6b1848611a31820c738 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Mon, 31 Oct 2022 16:41:01 +0700 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=BF=D0=B5=D1=80=D0=B5=D1=81=D0=BE=D0=B7=D0=B4?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=D0=BE?= =?UTF-8?q?=D0=B2=D0=BE=D0=B9=20=D0=91=D0=94=20=D0=BF=D1=80=D0=B8=20=D0=BE?= =?UTF-8?q?=D0=B1=D0=BD=D0=B0=D1=80=D1=83=D0=B6=D0=B5=D0=BD=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B2=D1=80=D0=B5=D0=B6=D0=B4=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/core/WebWorker.js | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/server/core/WebWorker.js b/server/core/WebWorker.js index 6b65970..03c3a04 100644 --- a/server/core/WebWorker.js +++ b/server/core/WebWorker.js @@ -132,7 +132,7 @@ class WebWorker { } } - async loadOrCreateDb(recreate = false) { + async loadOrCreateDb(recreate = false, iteration = 0) { this.setMyState(ssDbLoading); try { @@ -187,14 +187,24 @@ class WebWorker { }, }); - //открываем таблицы - await db.openAll({exclude: ['author_id', 'series_id', 'title_id', 'book']}); + try { + //открываем таблицы + await db.openAll({exclude: ['author_id', 'series_id', 'title_id', 'book']}); - const bookCacheSize = 500; - await db.open({ - table: 'book', - cacheSize: (config.lowMemoryMode || config.dbCacheSize > bookCacheSize ? config.dbCacheSize : bookCacheSize) - }); + const bookCacheSize = 500; + await db.open({ + table: 'book', + cacheSize: (config.lowMemoryMode || config.dbCacheSize > bookCacheSize ? config.dbCacheSize : bookCacheSize) + }); + } catch(e) { + log(LM_ERR, `Database error: ${e.message}`); + if (iteration < 1) { + log('Recreating DB'); + await this.loadOrCreateDb(true, iteration + 1); + } else + throw e; + return; + } //поисковый движок this.dbSearcher = new DbSearcher(config, db);