diff --git a/server/core/WebAccess.js b/server/core/WebAccess.js index a272cb7..6da3548 100644 --- a/server/core/WebAccess.js +++ b/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 {