@golemio/rush-hour-aggregation 1.5.2-dev.2941117834 → 1.5.2-dev.2941756587
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/db/migrations/postgresql/20261004194210-snapshots-latest-index-usage.js +53 -0
- package/db/migrations/postgresql/sqls/20261004194210-snapshots-latest-index-usage-down.sql +203 -0
- package/db/migrations/postgresql/sqls/20261004194210-snapshots-latest-index-usage-up.sql +203 -0
- package/dist/integration-engine/WorkerHelper.d.ts +0 -3
- package/dist/integration-engine/WorkerHelper.js +0 -27
- package/dist/integration-engine/WorkerHelper.js.map +1 -1
- package/dist/integration-engine/constants.d.ts +1 -0
- package/dist/integration-engine/constants.js +5 -0
- package/dist/integration-engine/constants.js.map +1 -0
- package/dist/integration-engine/dataAccess/AbstractEventsRepository.d.ts +7 -0
- package/dist/integration-engine/dataAccess/AbstractEventsRepository.js +11 -8
- package/dist/integration-engine/dataAccess/AbstractEventsRepository.js.map +1 -1
- package/dist/integration-engine/dataAccess/AggregationRepository.d.ts +5 -4
- package/dist/integration-engine/dataAccess/AggregationRepository.js +25 -12
- package/dist/integration-engine/dataAccess/AggregationRepository.js.map +1 -1
- package/dist/integration-engine/dataAccess/DataRetentionRepository.d.ts +2 -1
- package/dist/integration-engine/dataAccess/DataRetentionRepository.js +22 -2
- package/dist/integration-engine/dataAccess/DataRetentionRepository.js.map +1 -1
- package/dist/integration-engine/dataAccess/FcdEventsRepository.d.ts +3 -1
- package/dist/integration-engine/dataAccess/FcdEventsRepository.js +2 -2
- package/dist/integration-engine/dataAccess/FcdEventsRepository.js.map +1 -1
- package/dist/integration-engine/dataAccess/NdicEventRepository.d.ts +3 -1
- package/dist/integration-engine/dataAccess/NdicEventRepository.js +2 -2
- package/dist/integration-engine/dataAccess/NdicEventRepository.js.map +1 -1
- package/dist/integration-engine/dataAccess/TskEventsRepository.d.ts +3 -1
- package/dist/integration-engine/dataAccess/TskEventsRepository.js +2 -2
- package/dist/integration-engine/dataAccess/TskEventsRepository.js.map +1 -1
- package/dist/integration-engine/dataAccess/WazeJamsRepository.d.ts +3 -1
- package/dist/integration-engine/dataAccess/WazeJamsRepository.js +2 -2
- package/dist/integration-engine/dataAccess/WazeJamsRepository.js.map +1 -1
- package/dist/integration-engine/dataAccess/WazeReconstructionsRepository.d.ts +3 -1
- package/dist/integration-engine/dataAccess/WazeReconstructionsRepository.js +2 -2
- package/dist/integration-engine/dataAccess/WazeReconstructionsRepository.js.map +1 -1
- package/dist/integration-engine/dataAccess/interfaces/IAggregationRepository.d.ts +5 -0
- package/dist/integration-engine/dataAccess/interfaces/IAggregationRepository.js +3 -0
- package/dist/integration-engine/dataAccess/interfaces/IAggregationRepository.js.map +1 -0
- package/dist/integration-engine/dataAccess/interfaces/IDataRetentionRepository.d.ts +3 -0
- package/dist/integration-engine/dataAccess/interfaces/IDataRetentionRepository.js +3 -0
- package/dist/integration-engine/dataAccess/interfaces/IDataRetentionRepository.js.map +1 -0
- package/dist/integration-engine/index.d.ts +2 -2
- package/dist/integration-engine/index.js +3 -17
- package/dist/integration-engine/index.js.map +1 -1
- package/dist/integration-engine/ioc/Di.d.ts +3 -0
- package/dist/integration-engine/ioc/Di.js +20 -0
- package/dist/integration-engine/ioc/Di.js.map +1 -0
- package/dist/integration-engine/ioc/RushHourAggregationContainerToken.d.ts +8 -0
- package/dist/integration-engine/ioc/RushHourAggregationContainerToken.js +12 -0
- package/dist/integration-engine/ioc/RushHourAggregationContainerToken.js.map +1 -0
- package/dist/integration-engine/service/AggregationFactory.d.ts +6 -2
- package/dist/integration-engine/service/AggregationFactory.js +32 -8
- package/dist/integration-engine/service/AggregationFactory.js.map +1 -1
- package/dist/integration-engine/service/aggregators/AbstractAggregator.d.ts +5 -0
- package/dist/integration-engine/service/aggregators/AbstractAggregator.js +6 -3
- package/dist/integration-engine/service/aggregators/AbstractAggregator.js.map +1 -1
- package/dist/integration-engine/service/aggregators/FcdEventsAggregator.d.ts +4 -1
- package/dist/integration-engine/service/aggregators/FcdEventsAggregator.js +4 -5
- package/dist/integration-engine/service/aggregators/FcdEventsAggregator.js.map +1 -1
- package/dist/integration-engine/service/aggregators/NdicEventsAggregator.d.ts +4 -1
- package/dist/integration-engine/service/aggregators/NdicEventsAggregator.js +4 -5
- package/dist/integration-engine/service/aggregators/NdicEventsAggregator.js.map +1 -1
- package/dist/integration-engine/service/aggregators/TskEventsAggregator.d.ts +4 -1
- package/dist/integration-engine/service/aggregators/TskEventsAggregator.js +4 -5
- package/dist/integration-engine/service/aggregators/TskEventsAggregator.js.map +1 -1
- package/dist/integration-engine/service/aggregators/WazeJamsAggregator.d.ts +4 -1
- package/dist/integration-engine/service/aggregators/WazeJamsAggregator.js +4 -5
- package/dist/integration-engine/service/aggregators/WazeJamsAggregator.js.map +1 -1
- package/dist/integration-engine/service/aggregators/WazeReconstructionsAggregator.d.ts +4 -1
- package/dist/integration-engine/service/aggregators/WazeReconstructionsAggregator.js +7 -5
- package/dist/integration-engine/service/aggregators/WazeReconstructionsAggregator.js.map +1 -1
- package/dist/integration-engine/service/interfaces/IAggregationFactory.d.ts +5 -0
- package/dist/integration-engine/service/interfaces/IAggregationFactory.js +3 -0
- package/dist/integration-engine/service/interfaces/IAggregationFactory.js.map +1 -0
- package/dist/integration-engine/workers/RushHourAggregationWorker.d.ts +7 -0
- package/dist/integration-engine/workers/RushHourAggregationWorker.js +21 -0
- package/dist/integration-engine/workers/RushHourAggregationWorker.js.map +1 -0
- package/dist/integration-engine/workers/interfaces/IAggregateDataTaskInput.d.ts +8 -0
- package/dist/integration-engine/workers/interfaces/IAggregateDataTaskInput.js +3 -0
- package/dist/integration-engine/workers/interfaces/IAggregateDataTaskInput.js.map +1 -0
- package/dist/integration-engine/workers/schema/AggregateDataTaskInputSchema.d.ts +9 -0
- package/dist/integration-engine/workers/schema/AggregateDataTaskInputSchema.js +49 -0
- package/dist/integration-engine/workers/schema/AggregateDataTaskInputSchema.js.map +1 -0
- package/dist/integration-engine/workers/task/AggregateDataTask.d.ts +24 -0
- package/dist/integration-engine/workers/task/AggregateDataTask.js +118 -0
- package/dist/integration-engine/workers/task/AggregateDataTask.js.map +1 -0
- package/dist/integration-engine/workers/task/RefreshHistoricViewsTask.d.ts +11 -0
- package/dist/integration-engine/workers/task/RefreshHistoricViewsTask.js +58 -0
- package/dist/integration-engine/workers/task/RefreshHistoricViewsTask.js.map +1 -0
- package/docs/asyncapi.yaml +1 -1
- package/docs/implementation_documentation.md +17 -11
- package/package.json +1 -1
- package/templates/sqlQueries/NdicEventsFull.sql +3 -0
- package/dist/integration-engine/AggregationWorker.d.ts +0 -18
- package/dist/integration-engine/AggregationWorker.js +0 -88
- package/dist/integration-engine/AggregationWorker.js.map +0 -1
- package/dist/integration-engine/queueDefinitions.d.ts +0 -3
- package/dist/integration-engine/queueDefinitions.js +0 -36
- package/dist/integration-engine/queueDefinitions.js.map +0 -1
- package/docs/keeping_a_changelog.md +0 -48
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
|
|
4
3
|
class AbstractAggregator {
|
|
5
|
-
constructor() {
|
|
4
|
+
constructor(aggregationRepository, logger) {
|
|
5
|
+
this.aggregationRepository = aggregationRepository;
|
|
6
|
+
this.logger = logger;
|
|
6
7
|
this.maxAggregationDuration = { hours: 6 };
|
|
7
8
|
this.aggregateAndSave = async (from, to, updateOnDuplicate, refreshView) => {
|
|
9
|
+
const startedAt = Date.now();
|
|
8
10
|
const aggregationResult = await this.aggregate(from, to);
|
|
9
|
-
helpers_1.log.debug(`Saving aggregate ${this.constructor.name} from: ${from.toISOString()} to: ${to.toISOString()} count: ${aggregationResult.length}`);
|
|
10
11
|
await this.save(aggregationResult, updateOnDuplicate, refreshView);
|
|
12
|
+
this.logger.info(`${this.constructor.name} - aggregated and saved ${aggregationResult.length} rows from ${from.toISOString()} ` +
|
|
13
|
+
`to ${to.toISOString()} in ${Date.now() - startedAt} ms.`);
|
|
11
14
|
};
|
|
12
15
|
this.refreshHistoricMaterialView = async () => {
|
|
13
16
|
await this.repository.refreshHistoricMaterializedView();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractAggregator.js","sourceRoot":"","sources":["../../../../src/integration-engine/service/aggregators/AbstractAggregator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"AbstractAggregator.js","sourceRoot":"","sources":["../../../../src/integration-engine/service/aggregators/AbstractAggregator.ts"],"names":[],"mappings":";;AAMA,MAA8B,kBAAkB;IAI5C,YAAsB,qBAA6C,EAAY,MAAe;QAAxE,0BAAqB,GAArB,qBAAqB,CAAwB;QAAY,WAAM,GAAN,MAAM,CAAS;QAHpF,2BAAsB,GAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAKvD,qBAAgB,GAAG,KAAK,EAAE,IAAU,EAAE,EAAQ,EAAE,iBAA0B,EAAE,WAAoB,EAAiB,EAAE;YACtH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,CAAC,CAAC;YAEnE,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,2BAA2B,iBAAiB,CAAC,MAAM,cAAc,IAAI,CAAC,WAAW,EAAE,GAAG;gBAC1G,MAAM,EAAE,CAAC,WAAW,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,MAAM,CAChE,CAAC;QACN,CAAC,CAAC;QAMK,gCAA2B,GAAG,KAAK,IAAI,EAAE;YAC5C,MAAM,IAAI,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC;QAC5D,CAAC,CAAC;QAIQ,SAAI,GAAG,KAAK,EAAE,IAAS,EAAE,iBAA0B,EAAE,WAAoB,EAAiB,EAAE;YAClG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YACxD,IAAI,WAAW,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC;YAC1D,CAAC;QACL,CAAC,CAAC;IA7B+F,CAAC;IAa3F,cAAc;QACjB,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACvC,CAAC;CAeJ;AAlCD,qCAkCC"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
+
import { IAggregationRepository } from "../../dataAccess/interfaces/IAggregationRepository";
|
|
1
2
|
import FcdEventsRepository from "../../dataAccess/FcdEventsRepository";
|
|
2
3
|
import FcdEvent from "../../../schema-definitions/sequelize-models/FcdEvents";
|
|
4
|
+
import { IoRedisConnector } from "@golemio/core/dist/helpers/data-access/redis/IoRedisConnector";
|
|
5
|
+
import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
|
|
3
6
|
import AbstractAggregator from "./AbstractAggregator";
|
|
4
7
|
export default class FcdEventsAggregator extends AbstractAggregator<FcdEvent> {
|
|
5
8
|
protected maxAggregationDuration: {
|
|
6
9
|
minutes: number;
|
|
7
10
|
};
|
|
8
11
|
protected repository: FcdEventsRepository;
|
|
9
|
-
constructor();
|
|
12
|
+
constructor(aggregationRepository: IAggregationRepository, logger: ILogger, redisConnector: IoRedisConnector);
|
|
10
13
|
protected aggregate: (from: Date, to: Date) => Promise<FcdEvent[]>;
|
|
11
14
|
protected mapToDto(data: any[]): FcdEvent[];
|
|
12
15
|
}
|
|
@@ -3,23 +3,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const AggregationRepository_1 = __importDefault(require("../../dataAccess/AggregationRepository"));
|
|
7
6
|
const FcdEventsRepository_1 = __importDefault(require("../../dataAccess/FcdEventsRepository"));
|
|
8
7
|
const AggregationTaskType_1 = require("../../../schema-definitions/helpers/AggregationTaskType");
|
|
9
8
|
const luxon_1 = require("@golemio/core/dist/shared/luxon");
|
|
10
9
|
const AbstractAggregator_1 = __importDefault(require("./AbstractAggregator"));
|
|
11
10
|
class FcdEventsAggregator extends AbstractAggregator_1.default {
|
|
12
|
-
constructor() {
|
|
13
|
-
super();
|
|
11
|
+
constructor(aggregationRepository, logger, redisConnector) {
|
|
12
|
+
super(aggregationRepository, logger);
|
|
14
13
|
this.maxAggregationDuration = { minutes: 30 };
|
|
15
14
|
this.aggregate = async (from, to) => {
|
|
16
|
-
const result = await
|
|
15
|
+
const result = await this.aggregationRepository.aggregationQuery(AggregationTaskType_1.AggregationTaskType.FCD, {
|
|
17
16
|
from: luxon_1.DateTime.fromJSDate(from).toISO(),
|
|
18
17
|
to: luxon_1.DateTime.fromJSDate(to).toISO(),
|
|
19
18
|
});
|
|
20
19
|
return this.mapToDto(result);
|
|
21
20
|
};
|
|
22
|
-
this.repository = new FcdEventsRepository_1.default();
|
|
21
|
+
this.repository = new FcdEventsRepository_1.default(logger, redisConnector);
|
|
23
22
|
}
|
|
24
23
|
mapToDto(data) {
|
|
25
24
|
return data.map((element) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FcdEventsAggregator.js","sourceRoot":"","sources":["../../../../src/integration-engine/service/aggregators/FcdEventsAggregator.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"FcdEventsAggregator.js","sourceRoot":"","sources":["../../../../src/integration-engine/service/aggregators/FcdEventsAggregator.ts"],"names":[],"mappings":";;;;;AACA,+FAAqE;AACrE,iGAAuE;AAKvE,2DAA2D;AAC3D,8EAAsD;AAEtD,MAAqB,mBAAoB,SAAQ,4BAA4B;IAIzE,YAAY,qBAA6C,EAAE,MAAe,EAAE,cAAgC;QACxG,KAAK,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAJtB,2BAAsB,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAQlD,cAAS,GAAG,KAAK,EAAE,IAAU,EAAE,EAAQ,EAAuB,EAAE;YACtE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAY,yCAAmB,CAAC,GAAG,EAAE;gBACjG,IAAI,EAAE,gBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;gBACvC,EAAE,EAAE,gBAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE;aACtC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC;QAVE,IAAI,CAAC,UAAU,GAAG,IAAI,6BAAmB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtE,CAAC;IAWS,QAAQ,CAAC,IAAW;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACxB,OAAO;gBACH,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;gBACpD,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;gBACjD,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,UAAU,EAAE,OAAO,CAAC,UAAU;aACrB,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA7BD,sCA6BC"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import { IAggregationRepository } from "../../dataAccess/interfaces/IAggregationRepository";
|
|
1
2
|
import NdicEventsRepository from "../../dataAccess/NdicEventRepository";
|
|
2
3
|
import NdicEvent from "../../../schema-definitions/sequelize-models/NdicEvent";
|
|
4
|
+
import { IoRedisConnector } from "@golemio/core/dist/helpers/data-access/redis/IoRedisConnector";
|
|
5
|
+
import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
|
|
3
6
|
import { DurationLike } from "@golemio/core/dist/shared/luxon";
|
|
4
7
|
import AbstractAggregator from "./AbstractAggregator";
|
|
5
8
|
export default class NdicEventsAggregator extends AbstractAggregator<NdicEvent> {
|
|
6
9
|
protected maxAggregationDuration: DurationLike;
|
|
7
10
|
protected repository: NdicEventsRepository;
|
|
8
|
-
constructor();
|
|
11
|
+
constructor(aggregationRepository: IAggregationRepository, logger: ILogger, redisConnector: IoRedisConnector);
|
|
9
12
|
protected aggregate: (from: Date, to: Date) => Promise<NdicEvent[]>;
|
|
10
13
|
protected mapToDto(data: any[]): NdicEvent[];
|
|
11
14
|
}
|
|
@@ -3,23 +3,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const AggregationRepository_1 = __importDefault(require("../../dataAccess/AggregationRepository"));
|
|
7
6
|
const NdicEventRepository_1 = __importDefault(require("../../dataAccess/NdicEventRepository"));
|
|
8
7
|
const AggregationTaskType_1 = require("../../../schema-definitions/helpers/AggregationTaskType");
|
|
9
8
|
const luxon_1 = require("@golemio/core/dist/shared/luxon");
|
|
10
9
|
const AbstractAggregator_1 = __importDefault(require("./AbstractAggregator"));
|
|
11
10
|
class NdicEventsAggregator extends AbstractAggregator_1.default {
|
|
12
|
-
constructor() {
|
|
13
|
-
super();
|
|
11
|
+
constructor(aggregationRepository, logger, redisConnector) {
|
|
12
|
+
super(aggregationRepository, logger);
|
|
14
13
|
this.maxAggregationDuration = { hours: 2 };
|
|
15
14
|
this.aggregate = async (from, to) => {
|
|
16
|
-
const result = await
|
|
15
|
+
const result = await this.aggregationRepository.aggregationQuery(AggregationTaskType_1.AggregationTaskType.NDIC, undefined, {
|
|
17
16
|
from: luxon_1.DateTime.fromJSDate(from).toISO(),
|
|
18
17
|
to: luxon_1.DateTime.fromJSDate(to).toISO(),
|
|
19
18
|
});
|
|
20
19
|
return this.mapToDto(result);
|
|
21
20
|
};
|
|
22
|
-
this.repository = new NdicEventRepository_1.default();
|
|
21
|
+
this.repository = new NdicEventRepository_1.default(logger, redisConnector);
|
|
23
22
|
}
|
|
24
23
|
mapToDto(data) {
|
|
25
24
|
return data.map((element) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NdicEventsAggregator.js","sourceRoot":"","sources":["../../../../src/integration-engine/service/aggregators/NdicEventsAggregator.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"NdicEventsAggregator.js","sourceRoot":"","sources":["../../../../src/integration-engine/service/aggregators/NdicEventsAggregator.ts"],"names":[],"mappings":";;;;;AACA,+FAAsE;AACtE,iGAAuE;AAKvE,2DAAyE;AACzE,8EAAsD;AAEtD,MAAqB,oBAAqB,SAAQ,4BAA6B;IAI3E,YAAY,qBAA6C,EAAE,MAAe,EAAE,cAAgC;QACxG,KAAK,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAJtB,2BAAsB,GAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAQ7D,cAAS,GAAG,KAAK,EAAE,IAAU,EAAE,EAAQ,EAAwB,EAAE;YACvE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAa,yCAAmB,CAAC,IAAI,EAAE,SAAS,EAAE;gBAC9G,IAAI,EAAE,gBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;gBACvC,EAAE,EAAE,gBAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE;aACtC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC;QAVE,IAAI,CAAC,UAAU,GAAG,IAAI,6BAAoB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACvE,CAAC;IAWS,QAAQ,CAAC,IAAW;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACxB,OAAO;gBACH,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;gBACpD,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;gBACtD,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;gBACjD,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;gBACpD,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,UAAU,EAAE,OAAO,CAAC,UAAU;aACpB,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AApCD,uCAoCC"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import { IAggregationRepository } from "../../dataAccess/interfaces/IAggregationRepository";
|
|
1
2
|
import TskEventsRepository from "../../dataAccess/TskEventsRepository";
|
|
2
3
|
import TskEvent from "../../../schema-definitions/sequelize-models/TskEvent";
|
|
4
|
+
import { IoRedisConnector } from "@golemio/core/dist/helpers/data-access/redis/IoRedisConnector";
|
|
5
|
+
import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
|
|
3
6
|
import { DurationLike } from "@golemio/core/dist/shared/luxon";
|
|
4
7
|
import AbstractAggregator from "./AbstractAggregator";
|
|
5
8
|
export default class TskEventsAggregator extends AbstractAggregator<TskEvent> {
|
|
6
9
|
protected maxAggregationDuration: DurationLike;
|
|
7
10
|
protected repository: TskEventsRepository;
|
|
8
|
-
constructor();
|
|
11
|
+
constructor(aggregationRepository: IAggregationRepository, logger: ILogger, redisConnector: IoRedisConnector);
|
|
9
12
|
protected aggregate: (from: Date, to: Date) => Promise<TskEvent[]>;
|
|
10
13
|
protected mapToDto(data: any[]): TskEvent[];
|
|
11
14
|
}
|
|
@@ -3,23 +3,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const AggregationRepository_1 = __importDefault(require("../../dataAccess/AggregationRepository"));
|
|
7
6
|
const TskEventsRepository_1 = __importDefault(require("../../dataAccess/TskEventsRepository"));
|
|
8
7
|
const AggregationTaskType_1 = require("../../../schema-definitions/helpers/AggregationTaskType");
|
|
9
8
|
const luxon_1 = require("@golemio/core/dist/shared/luxon");
|
|
10
9
|
const AbstractAggregator_1 = __importDefault(require("./AbstractAggregator"));
|
|
11
10
|
class TskEventsAggregator extends AbstractAggregator_1.default {
|
|
12
|
-
constructor() {
|
|
13
|
-
super();
|
|
11
|
+
constructor(aggregationRepository, logger, redisConnector) {
|
|
12
|
+
super(aggregationRepository, logger);
|
|
14
13
|
this.maxAggregationDuration = { hours: 2 };
|
|
15
14
|
this.aggregate = async (from, to) => {
|
|
16
|
-
const result = await
|
|
15
|
+
const result = await this.aggregationRepository.aggregationQuery(AggregationTaskType_1.AggregationTaskType.SDDR, undefined, {
|
|
17
16
|
from: luxon_1.DateTime.fromJSDate(from).toISO(),
|
|
18
17
|
to: luxon_1.DateTime.fromJSDate(to).toISO(),
|
|
19
18
|
});
|
|
20
19
|
return this.mapToDto(result);
|
|
21
20
|
};
|
|
22
|
-
this.repository = new TskEventsRepository_1.default();
|
|
21
|
+
this.repository = new TskEventsRepository_1.default(logger, redisConnector);
|
|
23
22
|
}
|
|
24
23
|
mapToDto(data) {
|
|
25
24
|
return data.map((element) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TskEventsAggregator.js","sourceRoot":"","sources":["../../../../src/integration-engine/service/aggregators/TskEventsAggregator.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"TskEventsAggregator.js","sourceRoot":"","sources":["../../../../src/integration-engine/service/aggregators/TskEventsAggregator.ts"],"names":[],"mappings":";;;;;AACA,+FAAqE;AACrE,iGAAuE;AAKvE,2DAAyE;AACzE,8EAAsD;AAEtD,MAAqB,mBAAoB,SAAQ,4BAA4B;IAIzE,YAAY,qBAA6C,EAAE,MAAe,EAAE,cAAgC;QACxG,KAAK,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAJtB,2BAAsB,GAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAQ7D,cAAS,GAAG,KAAK,EAAE,IAAU,EAAE,EAAQ,EAAuB,EAAE;YACtE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAY,yCAAmB,CAAC,IAAI,EAAE,SAAS,EAAE;gBAC7G,IAAI,EAAE,gBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;gBACvC,EAAE,EAAE,gBAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE;aACtC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC;QAVE,IAAI,CAAC,UAAU,GAAG,IAAI,6BAAmB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtE,CAAC;IAWS,QAAQ,CAAC,IAAW;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACxB,OAAO;gBACH,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;gBACjD,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;gBACvF,UAAU,EAAE,OAAO,CAAC,UAAU;aACrB,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA5BD,sCA4BC"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import { IAggregationRepository } from "../../dataAccess/interfaces/IAggregationRepository";
|
|
1
2
|
import WazeJamsRepository from "../../dataAccess/WazeJamsRepository";
|
|
2
3
|
import WazeJams from "../../../schema-definitions/sequelize-models/WazeJams";
|
|
4
|
+
import { IoRedisConnector } from "@golemio/core/dist/helpers/data-access/redis/IoRedisConnector";
|
|
5
|
+
import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
|
|
3
6
|
import AbstractAggregator from "./AbstractAggregator";
|
|
4
7
|
export default class WazeAggregator extends AbstractAggregator<WazeJams> {
|
|
5
8
|
protected repository: WazeJamsRepository;
|
|
6
|
-
constructor();
|
|
9
|
+
constructor(aggregationRepository: IAggregationRepository, logger: ILogger, redisConnector: IoRedisConnector);
|
|
7
10
|
protected aggregate: (from: Date, to: Date) => Promise<WazeJams[]>;
|
|
8
11
|
protected mapToDto(data: any[]): WazeJams[];
|
|
9
12
|
}
|
|
@@ -3,21 +3,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const AggregationRepository_1 = __importDefault(require("../../dataAccess/AggregationRepository"));
|
|
7
6
|
const WazeJamsRepository_1 = __importDefault(require("../../dataAccess/WazeJamsRepository"));
|
|
8
7
|
const AggregationTaskType_1 = require("../../../schema-definitions/helpers/AggregationTaskType");
|
|
9
8
|
const AbstractAggregator_1 = __importDefault(require("./AbstractAggregator"));
|
|
10
9
|
class WazeAggregator extends AbstractAggregator_1.default {
|
|
11
|
-
constructor() {
|
|
12
|
-
super();
|
|
10
|
+
constructor(aggregationRepository, logger, redisConnector) {
|
|
11
|
+
super(aggregationRepository, logger);
|
|
13
12
|
this.aggregate = async (from, to) => {
|
|
14
|
-
const result = await
|
|
13
|
+
const result = await this.aggregationRepository.aggregationQuery(AggregationTaskType_1.AggregationTaskType.WAZEJ, {
|
|
15
14
|
from,
|
|
16
15
|
to,
|
|
17
16
|
});
|
|
18
17
|
return this.mapToDto(result);
|
|
19
18
|
};
|
|
20
|
-
this.repository = new WazeJamsRepository_1.default();
|
|
19
|
+
this.repository = new WazeJamsRepository_1.default(logger, redisConnector);
|
|
21
20
|
}
|
|
22
21
|
mapToDto(data) {
|
|
23
22
|
return data.map((element) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WazeJamsAggregator.js","sourceRoot":"","sources":["../../../../src/integration-engine/service/aggregators/WazeJamsAggregator.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"WazeJamsAggregator.js","sourceRoot":"","sources":["../../../../src/integration-engine/service/aggregators/WazeJamsAggregator.ts"],"names":[],"mappings":";;;;;AACA,6FAAmE;AACnE,iGAAuE;AAKvE,8EAAsD;AAEtD,MAAqB,cAAe,SAAQ,4BAA4B;IAGpE,YAAY,qBAA6C,EAAE,MAAe,EAAE,cAAgC;QACxG,KAAK,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAI/B,cAAS,GAAG,KAAK,EAAE,IAAU,EAAE,EAAQ,EAAuB,EAAE;YACtE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAY,yCAAmB,CAAC,KAAK,EAAE;gBACnG,IAAI;gBACJ,EAAE;aACL,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC;QAVE,IAAI,CAAC,UAAU,GAAG,IAAI,4BAAkB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrE,CAAC;IAWS,QAAQ,CAAC,IAAW;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACxB,OAAO;gBACH,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;gBACjD,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,UAAU,EAAE,OAAO,CAAC,UAAU;aACrB,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA7BD,iCA6BC"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import { IAggregationRepository } from "../../dataAccess/interfaces/IAggregationRepository";
|
|
1
2
|
import WazeReconstructionsRepository from "../../dataAccess/WazeReconstructionsRepository";
|
|
2
3
|
import WazeReconstructions from "../../../schema-definitions/sequelize-models/WazeReconstructions";
|
|
4
|
+
import { IoRedisConnector } from "@golemio/core/dist/helpers/data-access/redis/IoRedisConnector";
|
|
5
|
+
import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
|
|
3
6
|
import { DurationLike } from "@golemio/core/dist/shared/luxon";
|
|
4
7
|
import AbstractAggregator from "./AbstractAggregator";
|
|
5
8
|
export default class WazeReconstructionsAggregator extends AbstractAggregator<WazeReconstructions> {
|
|
6
9
|
protected maxAggregationDuration: DurationLike;
|
|
7
10
|
protected repository: WazeReconstructionsRepository;
|
|
8
|
-
constructor();
|
|
11
|
+
constructor(aggregationRepository: IAggregationRepository, logger: ILogger, redisConnector: IoRedisConnector);
|
|
9
12
|
protected aggregate: (from: Date, to: Date) => Promise<WazeReconstructions[]>;
|
|
10
13
|
protected mapToDto(data: any[]): WazeReconstructions[];
|
|
11
14
|
}
|
|
@@ -3,19 +3,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const AggregationRepository_1 = __importDefault(require("../../dataAccess/AggregationRepository"));
|
|
7
6
|
const WazeReconstructionsRepository_1 = __importDefault(require("../../dataAccess/WazeReconstructionsRepository"));
|
|
8
7
|
const AggregationTaskType_1 = require("../../../schema-definitions/helpers/AggregationTaskType");
|
|
9
8
|
const AbstractAggregator_1 = __importDefault(require("./AbstractAggregator"));
|
|
10
9
|
class WazeReconstructionsAggregator extends AbstractAggregator_1.default {
|
|
11
|
-
constructor() {
|
|
12
|
-
super();
|
|
10
|
+
constructor(aggregationRepository, logger, redisConnector) {
|
|
11
|
+
super(aggregationRepository, logger);
|
|
13
12
|
this.maxAggregationDuration = { hours: 2 };
|
|
14
13
|
this.aggregate = async (from, to) => {
|
|
15
|
-
const result = await
|
|
14
|
+
const result = await this.aggregationRepository.aggregationQuery(AggregationTaskType_1.AggregationTaskType.WAZER, {
|
|
15
|
+
from,
|
|
16
|
+
to,
|
|
17
|
+
});
|
|
16
18
|
return this.mapToDto(result);
|
|
17
19
|
};
|
|
18
|
-
this.repository = new WazeReconstructionsRepository_1.default();
|
|
20
|
+
this.repository = new WazeReconstructionsRepository_1.default(logger, redisConnector);
|
|
19
21
|
}
|
|
20
22
|
mapToDto(data) {
|
|
21
23
|
return data.map((element) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WazeReconstructionsAggregator.js","sourceRoot":"","sources":["../../../../src/integration-engine/service/aggregators/WazeReconstructionsAggregator.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"WazeReconstructionsAggregator.js","sourceRoot":"","sources":["../../../../src/integration-engine/service/aggregators/WazeReconstructionsAggregator.ts"],"names":[],"mappings":";;;;;AACA,mHAAyF;AACzF,iGAAuE;AAMvE,8EAAsD;AAEtD,MAAqB,6BAA8B,SAAQ,4BAAuC;IAI9F,YAAY,qBAA6C,EAAE,MAAe,EAAE,cAAgC;QACxG,KAAK,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAJtB,2BAAsB,GAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAQ7D,cAAS,GAAG,KAAK,EAAE,IAAU,EAAE,EAAQ,EAAkC,EAAE;YACjF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAuB,yCAAmB,CAAC,KAAK,EAAE;gBAC9G,IAAI;gBACJ,EAAE;aACL,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC;QAVE,IAAI,CAAC,UAAU,GAAG,IAAI,uCAA6B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAChF,CAAC;IAWS,QAAQ,CAAC,IAAW;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACxB,OAAO;gBACH,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;gBACjD,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,UAAU,EAAE,OAAO,CAAC,UAAU;aACV,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA7BD,gDA6BC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import IAbstractAggregator from "../aggregators/interfaces/IAbstractAggregator";
|
|
2
|
+
import { AggregationTaskType } from "../../../schema-definitions/helpers/AggregationTaskType";
|
|
3
|
+
export interface IAggregationFactory {
|
|
4
|
+
get(type: AggregationTaskType): IAbstractAggregator;
|
|
5
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IAggregationFactory.js","sourceRoot":"","sources":["../../../../src/integration-engine/service/interfaces/IAggregationFactory.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AbstractWorker } from "@golemio/core/dist/integration-engine";
|
|
2
|
+
import { ITask } from "@golemio/core/dist/integration-engine/workers/interfaces/ITask";
|
|
3
|
+
export declare class RushHourAggregationWorker extends AbstractWorker {
|
|
4
|
+
protected name: string;
|
|
5
|
+
constructor();
|
|
6
|
+
registerTask: (task: ITask) => void;
|
|
7
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RushHourAggregationWorker = void 0;
|
|
4
|
+
const constants_1 = require("../constants");
|
|
5
|
+
const Di_1 = require("../ioc/Di");
|
|
6
|
+
const RushHourAggregationContainerToken_1 = require("../ioc/RushHourAggregationContainerToken");
|
|
7
|
+
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
8
|
+
class RushHourAggregationWorker extends integration_engine_1.AbstractWorker {
|
|
9
|
+
constructor() {
|
|
10
|
+
super();
|
|
11
|
+
this.name = constants_1.RUSH_HOUR_AGGREGATION_WORKER_NAME;
|
|
12
|
+
this.registerTask = (task) => {
|
|
13
|
+
super.registerTask(task);
|
|
14
|
+
task.queuePrefix = this.getQueuePrefix();
|
|
15
|
+
};
|
|
16
|
+
this.registerTask(Di_1.RushHourAggregationContainer.resolve(RushHourAggregationContainerToken_1.RushHourAggregationContainerToken.AggregateDataTask));
|
|
17
|
+
this.registerTask(Di_1.RushHourAggregationContainer.resolve(RushHourAggregationContainerToken_1.RushHourAggregationContainerToken.RefreshHistoricViewsTask));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.RushHourAggregationWorker = RushHourAggregationWorker;
|
|
21
|
+
//# sourceMappingURL=RushHourAggregationWorker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RushHourAggregationWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/RushHourAggregationWorker.ts"],"names":[],"mappings":";;;AAAA,4CAAkE;AAClE,kCAA0D;AAC1D,gGAA8F;AAC9F,8EAAuE;AAGvE,MAAa,yBAA0B,SAAQ,mCAAc;IAGzD;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,6CAAiC,CAAC;QAW5C,iBAAY,GAAG,CAAC,IAAW,EAAQ,EAAE;YACxC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QATE,IAAI,CAAC,YAAY,CAAC,iCAA4B,CAAC,OAAO,CAAQ,qEAAiC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACpH,IAAI,CAAC,YAAY,CACb,iCAA4B,CAAC,OAAO,CAAQ,qEAAiC,CAAC,wBAAwB,CAAC,CAC1G,CAAC;IACN,CAAC;CAMJ;AAhBD,8DAgBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IAggregateDataTaskInput.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/interfaces/IAggregateDataTaskInput.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AggregationTaskType } from "../../../schema-definitions/helpers/AggregationTaskType";
|
|
2
|
+
import { IAggregateDataTaskInput } from "../interfaces/IAggregateDataTaskInput";
|
|
3
|
+
export declare class AggregateDataTaskInputSchema implements IAggregateDataTaskInput {
|
|
4
|
+
type?: AggregationTaskType;
|
|
5
|
+
from?: string;
|
|
6
|
+
to?: string;
|
|
7
|
+
updateOnDuplicate?: boolean;
|
|
8
|
+
refreshView?: boolean;
|
|
9
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.AggregateDataTaskInputSchema = void 0;
|
|
13
|
+
const AggregationTaskType_1 = require("../../../schema-definitions/helpers/AggregationTaskType");
|
|
14
|
+
const class_transformer_1 = require("@golemio/core/dist/shared/class-transformer");
|
|
15
|
+
const class_validator_1 = require("@golemio/core/dist/shared/class-validator");
|
|
16
|
+
const toUpperCase = ({ value }) => (typeof value === "string" ? value.toUpperCase() : value);
|
|
17
|
+
const toBoolean = ({ value }) => value === undefined || value === null ? value : String(value).toLowerCase() === "true";
|
|
18
|
+
class AggregateDataTaskInputSchema {
|
|
19
|
+
}
|
|
20
|
+
exports.AggregateDataTaskInputSchema = AggregateDataTaskInputSchema;
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, class_validator_1.IsOptional)(),
|
|
23
|
+
(0, class_transformer_1.Transform)(toUpperCase),
|
|
24
|
+
(0, class_validator_1.IsEnum)(AggregationTaskType_1.AggregationTaskType),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], AggregateDataTaskInputSchema.prototype, "type", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, class_validator_1.IsOptional)(),
|
|
29
|
+
(0, class_validator_1.IsISO8601)(),
|
|
30
|
+
__metadata("design:type", String)
|
|
31
|
+
], AggregateDataTaskInputSchema.prototype, "from", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, class_validator_1.IsOptional)(),
|
|
34
|
+
(0, class_validator_1.IsISO8601)(),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], AggregateDataTaskInputSchema.prototype, "to", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, class_validator_1.IsOptional)(),
|
|
39
|
+
(0, class_transformer_1.Transform)(toBoolean),
|
|
40
|
+
(0, class_validator_1.IsBoolean)(),
|
|
41
|
+
__metadata("design:type", Boolean)
|
|
42
|
+
], AggregateDataTaskInputSchema.prototype, "updateOnDuplicate", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, class_validator_1.IsOptional)(),
|
|
45
|
+
(0, class_transformer_1.Transform)(toBoolean),
|
|
46
|
+
(0, class_validator_1.IsBoolean)(),
|
|
47
|
+
__metadata("design:type", Boolean)
|
|
48
|
+
], AggregateDataTaskInputSchema.prototype, "refreshView", void 0);
|
|
49
|
+
//# sourceMappingURL=AggregateDataTaskInputSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AggregateDataTaskInputSchema.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/schema/AggregateDataTaskInputSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iGAAuE;AACvE,mFAA2F;AAC3F,+EAAqG;AAGrG,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAqB,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAEhH,MAAM,SAAS,GAAG,CAAC,EAAE,KAAK,EAAqB,EAAE,EAAE,CAC/C,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;AAE3F,MAAa,4BAA4B;CAuBxC;AAvBD,oEAuBC;AAnBG;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,6BAAS,EAAC,WAAW,CAAC;IACtB,IAAA,wBAAM,EAAC,yCAAmB,CAAC;;0DACD;AAI3B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;0DACE;AAId;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;wDACA;AAKZ;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,6BAAS,EAAC,SAAS,CAAC;IACpB,IAAA,2BAAS,GAAE;;uEACgB;AAK5B;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,6BAAS,EAAC,SAAS,CAAC;IACpB,IAAA,2BAAS,GAAE;;iEACU"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { IAggregationFactory } from "../../service/interfaces/IAggregationFactory";
|
|
2
|
+
import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
|
|
3
|
+
import { AbstractTask } from "@golemio/core/dist/integration-engine";
|
|
4
|
+
import { MessageProperties } from "amqplib";
|
|
5
|
+
import { IAggregateDataTaskInput } from "../interfaces/IAggregateDataTaskInput";
|
|
6
|
+
import { AggregateDataTaskInputSchema } from "../schema/AggregateDataTaskInputSchema";
|
|
7
|
+
export declare class AggregateDataTask extends AbstractTask<IAggregateDataTaskInput> {
|
|
8
|
+
private aggregationFactory;
|
|
9
|
+
private logger;
|
|
10
|
+
queueName: string;
|
|
11
|
+
queueTtl: number;
|
|
12
|
+
protected schema: typeof AggregateDataTaskInputSchema;
|
|
13
|
+
private readonly scheduledAggregationTypes;
|
|
14
|
+
private readonly scheduledAggregationIntervalInMinutes;
|
|
15
|
+
constructor(aggregationFactory: IAggregationFactory, logger: ILogger);
|
|
16
|
+
execute(data: IAggregateDataTaskInput, msgProperties?: MessageProperties): Promise<void>;
|
|
17
|
+
private getPublishOptions;
|
|
18
|
+
private getAggregationRange;
|
|
19
|
+
private isRangeTooLong;
|
|
20
|
+
private sendScheduledTasks;
|
|
21
|
+
private sendSubTasks;
|
|
22
|
+
private sendTask;
|
|
23
|
+
private aggregate;
|
|
24
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.AggregateDataTask = void 0;
|
|
19
|
+
const AggregationTask_1 = __importDefault(require("../../business/AggregationTask"));
|
|
20
|
+
const constants_1 = require("../../constants");
|
|
21
|
+
const RushHourAggregationContainerToken_1 = require("../../ioc/RushHourAggregationContainerToken");
|
|
22
|
+
const WorkerHelper_1 = __importDefault(require("../../WorkerHelper"));
|
|
23
|
+
const AggregationTaskType_1 = require("../../../schema-definitions/helpers/AggregationTaskType");
|
|
24
|
+
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
25
|
+
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
26
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
27
|
+
const luxon_1 = require("@golemio/core/dist/shared/luxon");
|
|
28
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
29
|
+
const AggregateDataTaskInputSchema_1 = require("../schema/AggregateDataTaskInputSchema");
|
|
30
|
+
let AggregateDataTask = class AggregateDataTask extends integration_engine_1.AbstractTask {
|
|
31
|
+
constructor(aggregationFactory, logger) {
|
|
32
|
+
super(constants_1.RUSH_HOUR_AGGREGATION_WORKER_NAME);
|
|
33
|
+
this.aggregationFactory = aggregationFactory;
|
|
34
|
+
this.logger = logger;
|
|
35
|
+
this.queueName = "aggregateData";
|
|
36
|
+
this.queueTtl = 23 * 60 * 60 * 1000;
|
|
37
|
+
this.schema = AggregateDataTaskInputSchema_1.AggregateDataTaskInputSchema;
|
|
38
|
+
this.scheduledAggregationTypes = [
|
|
39
|
+
AggregationTaskType_1.AggregationTaskType.FCD,
|
|
40
|
+
AggregationTaskType_1.AggregationTaskType.NDIC,
|
|
41
|
+
AggregationTaskType_1.AggregationTaskType.WAZEJ,
|
|
42
|
+
AggregationTaskType_1.AggregationTaskType.WAZER,
|
|
43
|
+
];
|
|
44
|
+
this.scheduledAggregationIntervalInMinutes = 10;
|
|
45
|
+
}
|
|
46
|
+
async execute(data, msgProperties) {
|
|
47
|
+
this.logger.debug(`Received new task: ${JSON.stringify(data)}`);
|
|
48
|
+
const publishOptions = this.getPublishOptions(msgProperties);
|
|
49
|
+
if (!data.type && !data.from && !data.to) {
|
|
50
|
+
await this.sendScheduledTasks(publishOptions);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const range = this.getAggregationRange(data);
|
|
54
|
+
if (this.isRangeTooLong(range)) {
|
|
55
|
+
await this.sendSubTasks(range, publishOptions);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
await this.aggregate(range);
|
|
59
|
+
}
|
|
60
|
+
getPublishOptions(msgProperties) {
|
|
61
|
+
return typeof msgProperties?.priority === "number" ? { priority: msgProperties.priority } : {};
|
|
62
|
+
}
|
|
63
|
+
getAggregationRange(data) {
|
|
64
|
+
if (!data.type || !data.from || !data.to) {
|
|
65
|
+
throw new golemio_errors_1.GeneralError(`Unsupported aggregation task ${JSON.stringify(data)}`, this.constructor.name);
|
|
66
|
+
}
|
|
67
|
+
const range = {
|
|
68
|
+
type: data.type,
|
|
69
|
+
from: luxon_1.DateTime.fromISO(data.from).toJSDate(),
|
|
70
|
+
to: luxon_1.DateTime.fromISO(data.to).toJSDate(),
|
|
71
|
+
updateOnDuplicate: data.updateOnDuplicate ?? false,
|
|
72
|
+
refreshView: data.refreshView ?? false,
|
|
73
|
+
};
|
|
74
|
+
if (range.from > range.to) {
|
|
75
|
+
throw new golemio_errors_1.GeneralError(`Unsupported task date range ${JSON.stringify(data)}`, this.constructor.name);
|
|
76
|
+
}
|
|
77
|
+
return range;
|
|
78
|
+
}
|
|
79
|
+
isRangeTooLong(range) {
|
|
80
|
+
const maxDuration = luxon_1.Duration.fromDurationLike(this.aggregationFactory.get(range.type).getMaxDuration());
|
|
81
|
+
const duration = luxon_1.DateTime.fromJSDate(range.to).diff(luxon_1.DateTime.fromJSDate(range.from));
|
|
82
|
+
return duration.toMillis() > maxDuration.toMillis();
|
|
83
|
+
}
|
|
84
|
+
async sendScheduledTasks(publishOptions) {
|
|
85
|
+
const to = new Date();
|
|
86
|
+
const from = luxon_1.DateTime.fromJSDate(to).minus({ minutes: this.scheduledAggregationIntervalInMinutes }).toJSDate();
|
|
87
|
+
for (const type of this.scheduledAggregationTypes) {
|
|
88
|
+
await this.sendTask(new AggregationTask_1.default(from, to, type, true, true), publishOptions);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
async sendSubTasks(range, publishOptions) {
|
|
92
|
+
const subTasks = WorkerHelper_1.default.generateSubTasksDefinitions(luxon_1.DateTime.fromJSDate(range.from), luxon_1.DateTime.fromJSDate(range.to), this.aggregationFactory.get(range.type).getMaxDuration(), range.type, range.updateOnDuplicate, range.refreshView);
|
|
93
|
+
for (const subTask of subTasks) {
|
|
94
|
+
await this.sendTask(subTask, publishOptions);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async sendTask(task, publishOptions) {
|
|
98
|
+
await integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, this.queueName, task, publishOptions);
|
|
99
|
+
}
|
|
100
|
+
async aggregate(range) {
|
|
101
|
+
try {
|
|
102
|
+
await this.aggregationFactory
|
|
103
|
+
.get(range.type)
|
|
104
|
+
.aggregateAndSave(range.from, range.to, range.updateOnDuplicate, range.refreshView);
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
throw new golemio_errors_1.GeneralError(`Unable to process task: ${range.type} from: ${range.from.toISOString()} to: ${range.to.toISOString()}.`, this.constructor.name, err);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
exports.AggregateDataTask = AggregateDataTask;
|
|
112
|
+
exports.AggregateDataTask = AggregateDataTask = __decorate([
|
|
113
|
+
(0, tsyringe_1.injectable)(),
|
|
114
|
+
__param(0, (0, tsyringe_1.inject)(RushHourAggregationContainerToken_1.RushHourAggregationContainerToken.AggregationFactory)),
|
|
115
|
+
__param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
|
|
116
|
+
__metadata("design:paramtypes", [Object, Object])
|
|
117
|
+
], AggregateDataTask);
|
|
118
|
+
//# sourceMappingURL=AggregateDataTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AggregateDataTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/task/AggregateDataTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IDataRetentionRepository } from "../../dataAccess/interfaces/IDataRetentionRepository";
|
|
2
|
+
import { IAggregationFactory } from "../../service/interfaces/IAggregationFactory";
|
|
3
|
+
import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine/workers/AbstractEmptyTask";
|
|
4
|
+
export declare class RefreshHistoricViewsTask extends AbstractEmptyTask {
|
|
5
|
+
private dataRetentionRepository;
|
|
6
|
+
private aggregationFactory;
|
|
7
|
+
queueName: string;
|
|
8
|
+
queueTtl: number;
|
|
9
|
+
constructor(dataRetentionRepository: IDataRetentionRepository, aggregationFactory: IAggregationFactory);
|
|
10
|
+
execute(): Promise<void>;
|
|
11
|
+
}
|