Bugfix/fix usage of processor portfolio snapshot computation concurrency env variable (#3936)
* Fix usage of PROCESSOR_PORTFOLIO_SNAPSHOT_COMPUTATION_CONCURRENCY * Update changelog
This commit is contained in:
parent
6696a4447a
commit
ce6f175f9a
@ -17,6 +17,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- Improved the usability to customize the rule thresholds in the _X-ray_ section by introducing units (experimental)
|
- Improved the usability to customize the rule thresholds in the _X-ray_ section by introducing units (experimental)
|
||||||
- Improved the language localization for German (`de`)
|
- Improved the language localization for German (`de`)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed the usage of the environment variable `PROCESSOR_PORTFOLIO_SNAPSHOT_COMPUTATION_CONCURRENCY`
|
||||||
|
|
||||||
## 2.115.0 - 2024-10-14
|
## 2.115.0 - 2024-10-14
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import {
|
import {
|
||||||
DATA_GATHERING_QUEUE,
|
DATA_GATHERING_QUEUE,
|
||||||
PORTFOLIO_SNAPSHOT_QUEUE,
|
PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE,
|
||||||
QUEUE_JOB_STATUS_LIST
|
QUEUE_JOB_STATUS_LIST
|
||||||
} from '@ghostfolio/common/config';
|
} from '@ghostfolio/common/config';
|
||||||
import { AdminJobs } from '@ghostfolio/common/interfaces';
|
import { AdminJobs } from '@ghostfolio/common/interfaces';
|
||||||
@ -14,7 +14,7 @@ export class QueueService {
|
|||||||
public constructor(
|
public constructor(
|
||||||
@InjectQueue(DATA_GATHERING_QUEUE)
|
@InjectQueue(DATA_GATHERING_QUEUE)
|
||||||
private readonly dataGatheringQueue: Queue,
|
private readonly dataGatheringQueue: Queue,
|
||||||
@InjectQueue(PORTFOLIO_SNAPSHOT_QUEUE)
|
@InjectQueue(PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE)
|
||||||
private readonly portfolioSnapshotQueue: Queue
|
private readonly portfolioSnapshotQueue: Queue
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
@ -15,8 +15,8 @@ import { getIntervalFromDateRange } from '@ghostfolio/common/calculation-helper'
|
|||||||
import {
|
import {
|
||||||
PORTFOLIO_SNAPSHOT_PROCESS_JOB_NAME,
|
PORTFOLIO_SNAPSHOT_PROCESS_JOB_NAME,
|
||||||
PORTFOLIO_SNAPSHOT_PROCESS_JOB_OPTIONS,
|
PORTFOLIO_SNAPSHOT_PROCESS_JOB_OPTIONS,
|
||||||
PORTFOLIO_SNAPSHOT_QUEUE_PRIORITY_HIGH,
|
PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE_PRIORITY_HIGH,
|
||||||
PORTFOLIO_SNAPSHOT_QUEUE_PRIORITY_LOW
|
PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE_PRIORITY_LOW
|
||||||
} from '@ghostfolio/common/config';
|
} from '@ghostfolio/common/config';
|
||||||
import {
|
import {
|
||||||
DATE_FORMAT,
|
DATE_FORMAT,
|
||||||
@ -1080,7 +1080,7 @@ export abstract class PortfolioCalculator {
|
|||||||
opts: {
|
opts: {
|
||||||
...PORTFOLIO_SNAPSHOT_PROCESS_JOB_OPTIONS,
|
...PORTFOLIO_SNAPSHOT_PROCESS_JOB_OPTIONS,
|
||||||
jobId,
|
jobId,
|
||||||
priority: PORTFOLIO_SNAPSHOT_QUEUE_PRIORITY_LOW
|
priority: PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE_PRIORITY_LOW
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -1096,7 +1096,7 @@ export abstract class PortfolioCalculator {
|
|||||||
opts: {
|
opts: {
|
||||||
...PORTFOLIO_SNAPSHOT_PROCESS_JOB_OPTIONS,
|
...PORTFOLIO_SNAPSHOT_PROCESS_JOB_OPTIONS,
|
||||||
jobId,
|
jobId,
|
||||||
priority: PORTFOLIO_SNAPSHOT_QUEUE_PRIORITY_HIGH
|
priority: PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE_PRIORITY_HIGH
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ import { MarketDataModule } from '@ghostfolio/api/services/market-data/market-da
|
|||||||
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
|
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
|
||||||
import {
|
import {
|
||||||
DEFAULT_PROCESSOR_PORTFOLIO_SNAPSHOT_COMPUTATION_TIMEOUT,
|
DEFAULT_PROCESSOR_PORTFOLIO_SNAPSHOT_COMPUTATION_TIMEOUT,
|
||||||
PORTFOLIO_SNAPSHOT_QUEUE
|
PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE
|
||||||
} from '@ghostfolio/common/config';
|
} from '@ghostfolio/common/config';
|
||||||
|
|
||||||
import { BullModule } from '@nestjs/bull';
|
import { BullModule } from '@nestjs/bull';
|
||||||
@ -23,7 +23,7 @@ import { PortfolioSnapshotProcessor } from './portfolio-snapshot.processor';
|
|||||||
imports: [
|
imports: [
|
||||||
AccountBalanceModule,
|
AccountBalanceModule,
|
||||||
BullModule.registerQueue({
|
BullModule.registerQueue({
|
||||||
name: PORTFOLIO_SNAPSHOT_QUEUE,
|
name: PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE,
|
||||||
settings: {
|
settings: {
|
||||||
lockDuration: parseInt(
|
lockDuration: parseInt(
|
||||||
process.env.PROCESSOR_PORTFOLIO_SNAPSHOT_COMPUTATION_TIMEOUT ??
|
process.env.PROCESSOR_PORTFOLIO_SNAPSHOT_COMPUTATION_TIMEOUT ??
|
||||||
|
@ -11,7 +11,7 @@ import {
|
|||||||
CACHE_TTL_INFINITE,
|
CACHE_TTL_INFINITE,
|
||||||
DEFAULT_PROCESSOR_PORTFOLIO_SNAPSHOT_COMPUTATION_CONCURRENCY,
|
DEFAULT_PROCESSOR_PORTFOLIO_SNAPSHOT_COMPUTATION_CONCURRENCY,
|
||||||
PORTFOLIO_SNAPSHOT_PROCESS_JOB_NAME,
|
PORTFOLIO_SNAPSHOT_PROCESS_JOB_NAME,
|
||||||
PORTFOLIO_SNAPSHOT_QUEUE
|
PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE
|
||||||
} from '@ghostfolio/common/config';
|
} from '@ghostfolio/common/config';
|
||||||
|
|
||||||
import { Process, Processor } from '@nestjs/bull';
|
import { Process, Processor } from '@nestjs/bull';
|
||||||
@ -22,7 +22,7 @@ import { addMilliseconds } from 'date-fns';
|
|||||||
import { IPortfolioSnapshotQueueJob } from './interfaces/portfolio-snapshot-queue-job.interface';
|
import { IPortfolioSnapshotQueueJob } from './interfaces/portfolio-snapshot-queue-job.interface';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
@Processor(PORTFOLIO_SNAPSHOT_QUEUE)
|
@Processor(PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE)
|
||||||
export class PortfolioSnapshotProcessor {
|
export class PortfolioSnapshotProcessor {
|
||||||
public constructor(
|
public constructor(
|
||||||
private readonly accountBalanceService: AccountBalanceService,
|
private readonly accountBalanceService: AccountBalanceService,
|
||||||
@ -34,7 +34,7 @@ export class PortfolioSnapshotProcessor {
|
|||||||
|
|
||||||
@Process({
|
@Process({
|
||||||
concurrency: parseInt(
|
concurrency: parseInt(
|
||||||
process.env.PROCESSOR_CONCURRENCY_PORTFOLIO_SNAPSHOT ??
|
process.env.PROCESSOR_PORTFOLIO_SNAPSHOT_COMPUTATION_CONCURRENCY ??
|
||||||
DEFAULT_PROCESSOR_PORTFOLIO_SNAPSHOT_COMPUTATION_CONCURRENCY.toString(),
|
DEFAULT_PROCESSOR_PORTFOLIO_SNAPSHOT_COMPUTATION_CONCURRENCY.toString(),
|
||||||
10
|
10
|
||||||
),
|
),
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { PORTFOLIO_SNAPSHOT_QUEUE } from '@ghostfolio/common/config';
|
import { PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE } from '@ghostfolio/common/config';
|
||||||
|
|
||||||
import { InjectQueue } from '@nestjs/bull';
|
import { InjectQueue } from '@nestjs/bull';
|
||||||
import { Injectable } from '@nestjs/common';
|
import { Injectable } from '@nestjs/common';
|
||||||
@ -9,7 +9,7 @@ import { IPortfolioSnapshotQueueJob } from './interfaces/portfolio-snapshot-queu
|
|||||||
@Injectable()
|
@Injectable()
|
||||||
export class PortfolioSnapshotService {
|
export class PortfolioSnapshotService {
|
||||||
public constructor(
|
public constructor(
|
||||||
@InjectQueue(PORTFOLIO_SNAPSHOT_QUEUE)
|
@InjectQueue(PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE)
|
||||||
private readonly portfolioSnapshotQueue: Queue
|
private readonly portfolioSnapshotQueue: Queue
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
@ -40,9 +40,11 @@ export const DATA_GATHERING_QUEUE_PRIORITY_MEDIUM = Math.round(
|
|||||||
DATA_GATHERING_QUEUE_PRIORITY_LOW / 2
|
DATA_GATHERING_QUEUE_PRIORITY_LOW / 2
|
||||||
);
|
);
|
||||||
|
|
||||||
export const PORTFOLIO_SNAPSHOT_QUEUE = 'PORTFOLIO_SNAPSHOT_QUEUE';
|
export const PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE =
|
||||||
export const PORTFOLIO_SNAPSHOT_QUEUE_PRIORITY_HIGH = 1;
|
'PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE';
|
||||||
export const PORTFOLIO_SNAPSHOT_QUEUE_PRIORITY_LOW = Number.MAX_SAFE_INTEGER;
|
export const PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE_PRIORITY_HIGH = 1;
|
||||||
|
export const PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE_PRIORITY_LOW =
|
||||||
|
Number.MAX_SAFE_INTEGER;
|
||||||
|
|
||||||
export const DEFAULT_CURRENCY = 'USD';
|
export const DEFAULT_CURRENCY = 'USD';
|
||||||
export const DEFAULT_DATE_FORMAT_MONTH_YEAR = 'MMM yyyy';
|
export const DEFAULT_DATE_FORMAT_MONTH_YEAR = 'MMM yyyy';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user