diff --git a/apps/api/src/app/admin/queue/queue.service.ts b/apps/api/src/app/admin/queue/queue.service.ts index 15fdf7cb0..7e4f0adb7 100644 --- a/apps/api/src/app/admin/queue/queue.service.ts +++ b/apps/api/src/app/admin/queue/queue.service.ts @@ -63,10 +63,8 @@ export class QueueService { this.portfolioSnapshotQueue.getJobs(status) ]); - const allJobs = [...dataGatheringJobs, ...portfolioSnapshotJobs]; - const jobsWithState = await Promise.all( - allJobs + [...dataGatheringJobs, ...portfolioSnapshotJobs] .filter((job) => { return job; }) diff --git a/apps/api/src/app/redis-cache/redis-cache.service.mock.ts b/apps/api/src/app/redis-cache/redis-cache.service.mock.ts index f3a0d156b..2779308bd 100644 --- a/apps/api/src/app/redis-cache/redis-cache.service.mock.ts +++ b/apps/api/src/app/redis-cache/redis-cache.service.mock.ts @@ -18,7 +18,7 @@ export const RedisCacheServiceMock = { }): string => { const filtersHash = filters?.length; - return `portfolio-snapshot-${userId}-${filtersHash}`; + return `portfolio-snapshot-${userId}${filtersHash > 0 ? `-${filtersHash}` : ''}`; }, set: (key: string, value: string, ttl?: Milliseconds): Promise => { RedisCacheServiceMock.cache.set(key, value); diff --git a/apps/api/src/services/portfolio-snapshot/portfolio-snapshot.module.ts b/apps/api/src/services/portfolio-snapshot/portfolio-snapshot.module.ts index 5dcbb2392..94eb80fd3 100644 --- a/apps/api/src/services/portfolio-snapshot/portfolio-snapshot.module.ts +++ b/apps/api/src/services/portfolio-snapshot/portfolio-snapshot.module.ts @@ -7,9 +7,6 @@ import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data- import { ExchangeRateDataModule } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.module'; import { MarketDataModule } from '@ghostfolio/api/services/market-data/market-data.module'; import { PortfolioSnapshotService } from '@ghostfolio/api/services/portfolio-snapshot/portfolio-snapshot.service'; -import { PrismaModule } from '@ghostfolio/api/services/prisma/prisma.module'; -import { PropertyModule } from '@ghostfolio/api/services/property/property.module'; -import { SymbolProfileModule } from '@ghostfolio/api/services/symbol-profile/symbol-profile.module'; import { PORTFOLIO_SNAPSHOT_QUEUE } from '@ghostfolio/common/config'; import { BullModule } from '@nestjs/bull'; @@ -27,10 +24,7 @@ import { PortfolioSnapshotProcessor } from './portfolio-snapshot.processor'; ExchangeRateDataModule, MarketDataModule, OrderModule, - PrismaModule, - PropertyModule, - RedisCacheModule, - SymbolProfileModule + RedisCacheModule ], providers: [ CurrentRateService, diff --git a/apps/api/src/services/portfolio-snapshot/portfolio-snapshot.processor.ts b/apps/api/src/services/portfolio-snapshot/portfolio-snapshot.processor.ts index 372040100..a3b26c2b6 100644 --- a/apps/api/src/services/portfolio-snapshot/portfolio-snapshot.processor.ts +++ b/apps/api/src/services/portfolio-snapshot/portfolio-snapshot.processor.ts @@ -34,6 +34,8 @@ export class PortfolioSnapshotProcessor { job: Job ) { try { + const startTime = performance.now(); + Logger.log( `Portfolio snapshot calculation of user ${job.data.userId} has been started`, `PortfolioSnapshotProcessor (${PORTFOLIO_SNAPSHOT_PROCESS_JOB_NAME})` @@ -57,7 +59,10 @@ export class PortfolioSnapshotProcessor { const snapshot = await portfolioCalculator.computeSnapshot(); Logger.log( - `Portfolio snapshot calculation of user ${job.data.userId} has been completed`, + `Portfolio snapshot calculation of user ${job.data.userId} has been completed in ${( + (performance.now() - startTime) / + 1000 + ).toFixed(3)} seconds`, `PortfolioSnapshotProcessor (${PORTFOLIO_SNAPSHOT_PROCESS_JOB_NAME})` );