|
@@ -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 {
|