From 45d05f48c1c813e82cd817968e6e99d3da026252 Mon Sep 17 00:00:00 2001 From: Ben Wilson Date: Fri, 4 Aug 2023 20:28:03 -0400 Subject: [PATCH] only keep 10min of job templates (reduce memory consumption) --- src/services/stratum-v1-jobs.service.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/services/stratum-v1-jobs.service.ts b/src/services/stratum-v1-jobs.service.ts index 9123fc2..57853ea 100644 --- a/src/services/stratum-v1-jobs.service.ts +++ b/src/services/stratum-v1-jobs.service.ts @@ -33,7 +33,7 @@ export class StratumV1JobsService { public jobs: MiningJob[] = []; - public blocks: { [id: number]: IJobTemplate } = {}; + public blocks: { id: string, template: IJobTemplate }[] = []; constructor( private readonly bitcoinRpcService: BitcoinRpcService @@ -123,10 +123,18 @@ export class StratumV1JobsService { }), tap((data) => { if (data.blockData.clearJobs) { - this.blocks = {}; + this.blocks = []; this.jobs = []; } - this.blocks[data.blockData.id] = data; + + if (this.blocks.length >= 10) { + this.blocks.shift(); + } + + this.blocks.push({ + id: data.blockData.id, + template: data + }); }), shareReplay({ refCount: true, bufferSize: 1 }) ) @@ -150,7 +158,7 @@ export class StratumV1JobsService { } public getJobTemplateById(jobTemplateId: string): IJobTemplate { - return this.blocks[jobTemplateId]; + return this.blocks.find(b => b.id === jobTemplateId)?.template; } public addJob(job: MiningJob) {