Рефакторинг, преобразование классов в синглтоны
This commit is contained in:
@@ -1,11 +1,12 @@
|
||||
const BaseController = require('./BaseController');
|
||||
const ReaderWorker = require('../core/ReaderWorker');
|
||||
const readerStorage = require('../core/readerStorage');
|
||||
const ReaderWorker = require('../core/ReaderWorker');//singleton
|
||||
const ReaderStorage = require('../core/ReaderStorage');//singleton
|
||||
const WorkerState = require('../core/WorkerState');//singleton
|
||||
|
||||
class ReaderController extends BaseController {
|
||||
constructor(config) {
|
||||
super(config);
|
||||
this.readerStorage = new ReaderStorage();
|
||||
this.readerWorker = new ReaderWorker(config);
|
||||
this.workerState = new WorkerState();
|
||||
}
|
||||
@@ -39,7 +40,7 @@ class ReaderController extends BaseController {
|
||||
if (!request.items || Array.isArray(request.data))
|
||||
throw new Error(`key 'items' is empty`);
|
||||
|
||||
return await readerStorage.doAction(request);
|
||||
return await this.readerStorage.doAction(request);
|
||||
} catch (e) {
|
||||
error = e.message;
|
||||
}
|
||||
|
||||
@@ -1,12 +1,22 @@
|
||||
const SQL = require('sql-template-strings');
|
||||
const _ = require('lodash');
|
||||
|
||||
const connManager = require('../db/connManager');
|
||||
const ConnManager = require('../db/ConnManager');//singleton
|
||||
|
||||
let instance = null;
|
||||
|
||||
//singleton
|
||||
class ReaderStorage {
|
||||
constructor() {
|
||||
this.storagePool = connManager.pool.readerStorage;
|
||||
if (!instance) {
|
||||
this.connManager = new ConnManager();
|
||||
this.storagePool = this.connManager.pool.readerStorage;
|
||||
this.periodicCleanCache(3*3600*1000);//1 раз в 3 часа
|
||||
|
||||
instance = this;
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
async doAction(act) {
|
||||
@@ -113,6 +123,4 @@ class ReaderStorage {
|
||||
}
|
||||
}
|
||||
|
||||
const readerStorage = new ReaderStorage();
|
||||
|
||||
module.exports = readerStorage;
|
||||
module.exports = ReaderStorage;
|
||||
@@ -8,13 +8,23 @@ const migrations = {
|
||||
'readerStorage': require('./migrations/readerStorage'),
|
||||
};
|
||||
|
||||
let instance = null;
|
||||
|
||||
//singleton
|
||||
class ConnManager {
|
||||
constructor() {
|
||||
this._pool = {};
|
||||
if (!instance) {
|
||||
this.inited = false;
|
||||
|
||||
instance = this;
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
async init(config) {
|
||||
this.config = config;
|
||||
this._pool = {};
|
||||
|
||||
const force = null;//(config.branch == 'development' ? 'last' : null);
|
||||
|
||||
@@ -39,6 +49,7 @@ class ConnManager {
|
||||
|
||||
this._pool[poolConfig.poolName] = connPool;
|
||||
}
|
||||
this.inited = true;
|
||||
}
|
||||
|
||||
get pool() {
|
||||
@@ -46,6 +57,4 @@ class ConnManager {
|
||||
}
|
||||
}
|
||||
|
||||
const connManager = new ConnManager();
|
||||
|
||||
module.exports = connManager;
|
||||
module.exports = ConnManager;
|
||||
@@ -11,7 +11,7 @@ const path = require('path');
|
||||
const express = require('express');
|
||||
const compression = require('compression');
|
||||
|
||||
const connManager = require('./db/connManager');
|
||||
const connManager = new(require('./db/ConnManager'))();//singleton
|
||||
|
||||
async function init() {
|
||||
await fs.ensureDir(config.dataDir);
|
||||
|
||||
Reference in New Issue
Block a user