瀏覽代碼

Поправлен баг закрытия БД

Book Pauk 2 年之前
父節點
當前提交
74bb3f2362
共有 1 個文件被更改,包括 10 次插入0 次删除
  1. 10 0
      server/core/WebAccess.js

+ 10 - 0
server/core/WebAccess.js

@@ -1,6 +1,7 @@
 const { JembaDbThread } = require('jembadb');
 const utils = require('../core/utils');
 const log = new (require('../core/AppLogger'))().log;//singleton
+const asyncExit = new (require('./AsyncExit'))();
 
 const cleanPeriod = 1*60*1000;//1 минута
 const cleanUnusedTokenTimeout = 5*60*1000;//5 минут
@@ -13,6 +14,8 @@ class WebAccess {
         this.accessTimeout = config.accessTimeout*60*1000;
         this.accessMap = new Map();
 
+        asyncExit.add(this.closeDb.bind(this));
+
         setTimeout(() => { this.periodicClean(); }, cleanPeriod);
     }
 
@@ -67,6 +70,13 @@ class WebAccess {
         this.db = db;
     }
 
+    async closeDb() {
+        if (this.db) {
+            await this.db.unlock();
+            this.db = null;
+        }
+    }
+
     async periodicClean() {
         while (1) {//eslint-disable-line no-constant-condition
             try {