diff --git a/backend/src/api/statistics.ts b/backend/src/api/statistics.ts index f98917231..dbac2936e 100644 --- a/backend/src/api/statistics.ts +++ b/backend/src/api/statistics.ts @@ -8,6 +8,9 @@ class Statistics { protected intervalTimer: NodeJS.Timer | undefined; protected newStatisticsEntryCallback: ((stats: OptimizedStatistic) => void) | undefined; protected queryTimeout = 120000; + protected cache: { [date: string]: OptimizedStatistic[] } = { + '24h': [], '1w': [], '1m': [], '3m': [], '6m': [], '1y': [], + }; public setNewStatisticsEntryCallback(fn: (stats: OptimizedStatistic) => void) { this.newStatisticsEntryCallback = fn; @@ -29,6 +32,23 @@ class Statistics { this.runStatistics(); }, 1 * 60 * 1000); }, difference); + + this.createCache(); + setInterval(this.createCache.bind(this), 600000); + } + + public getCache() { + return this.cache; + } + + private async createCache() { + this.cache['24h'] = await this.$list24H(); + this.cache['1w'] = await this.$list1W(); + this.cache['1m'] = await this.$list1M(); + this.cache['3m'] = await this.$list3M(); + this.cache['6m'] = await this.$list6M(); + this.cache['1y'] = await this.$list1Y(); + logger.debug('Statistics cache created'); } private async runStatistics(): Promise { diff --git a/backend/src/database.ts b/backend/src/database.ts index 571fab074..f288fcfa3 100644 --- a/backend/src/database.ts +++ b/backend/src/database.ts @@ -11,7 +11,6 @@ export class DB { password: config.DATABASE.PASSWORD, connectionLimit: 10, supportBigNumbers: true, - acquireTimeout: 60000, }); } diff --git a/backend/src/routes.ts b/backend/src/routes.ts index 4630696f2..f451d914d 100644 --- a/backend/src/routes.ts +++ b/backend/src/routes.ts @@ -20,26 +20,7 @@ import loadingIndicators from './api/loading-indicators'; import { Common } from './api/common'; class Routes { - private cache: { [date: string]: OptimizedStatistic[] } = { - '24h': [], '1w': [], '1m': [], '3m': [], '6m': [], '1y': [], - }; - - constructor() { - if (config.DATABASE.ENABLED && config.STATISTICS.ENABLED) { - this.createCache(); - setInterval(this.createCache.bind(this), 600000); - } - } - - private async createCache() { - this.cache['24h'] = await statistics.$list24H(); - this.cache['1w'] = await statistics.$list1W(); - this.cache['1m'] = await statistics.$list1M(); - this.cache['3m'] = await statistics.$list3M(); - this.cache['6m'] = await statistics.$list6M(); - this.cache['1y'] = await statistics.$list1Y(); - logger.debug('Statistics cache created'); - } + constructor() {} public async get2HStatistics(req: Request, res: Response) { const result = await statistics.$list2H(); @@ -47,27 +28,27 @@ class Routes { } public get24HStatistics(req: Request, res: Response) { - res.json(this.cache['24h']); + res.json(statistics.getCache()['24h']); } public get1WHStatistics(req: Request, res: Response) { - res.json(this.cache['1w']); + res.json(statistics.getCache()['1w']); } public get1MStatistics(req: Request, res: Response) { - res.json(this.cache['1m']); + res.json(statistics.getCache()['1m']); } public get3MStatistics(req: Request, res: Response) { - res.json(this.cache['3m']); + res.json(statistics.getCache()['3m']); } public get6MStatistics(req: Request, res: Response) { - res.json(this.cache['6m']); + res.json(statistics.getCache()['6m']); } public get1YStatistics(req: Request, res: Response) { - res.json(this.cache['1y']); + res.json(statistics.getCache()['1y']); } public getInitData(req: Request, res: Response) {