@golemio/pid 3.13.1-dev.1794220469 → 3.13.1-rc.1803130713
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/dist/input-gateway/vehicle-positions/VehiclePositionsController.js +1 -0
- package/dist/input-gateway/vehicle-positions/VehiclePositionsController.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/data-access/cache/DelayComputationRedisRepository.d.ts +0 -2
- package/dist/integration-engine/ropid-gtfs/data-access/cache/DelayComputationRedisRepository.js +1 -48
- package/dist/integration-engine/ropid-gtfs/data-access/cache/DelayComputationRedisRepository.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/VPInterfaces.d.ts +1 -3
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/ProcessRegionalBusPositionsTask.js +3 -2
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/ProcessRegionalBusPositionsTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/PropagateTrainDelayTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateDelayTask.js +3 -2
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateDelayTask.js.map +1 -1
- package/dist/output-gateway/public/data-access/redis/DelayComputationRepository.d.ts +1 -1
- package/dist/output-gateway/public/data-access/redis/DelayComputationRepository.js +14 -10
- package/dist/output-gateway/public/data-access/redis/DelayComputationRepository.js.map +1 -1
- package/dist/output-gateway/public/domain/repository/IDelayComputationRepository.d.ts +1 -1
- package/dist/output-gateway/public/service/helpers/trip-scope/strategy/ShapesTripScopeHandler.js +1 -1
- package/dist/output-gateway/public/service/helpers/trip-scope/strategy/ShapesTripScopeHandler.js.map +1 -1
- package/dist/output-gateway/public/service/helpers/trip-scope/strategy/StopTimesTripScopeHandler.js +1 -1
- package/dist/output-gateway/public/service/helpers/trip-scope/strategy/StopTimesTripScopeHandler.js.map +1 -1
- package/docs/cache/index.md +5 -0
- package/docs/cache/types/in_memory.md +58 -0
- package/docs/cache/types/psql.md +76 -0
- package/docs/cache/types/redis.md +314 -0
- package/docs/processing/index.md +17 -0
- package/docs/processing/input_realtime_data/http_mpvnet.md +153 -0
- package/docs/processing/input_realtime_data/tcp_dpp_bus.md +27 -0
- package/docs/processing/input_realtime_data/tcp_dpp_metro.md +24 -0
- package/docs/processing/input_realtime_data/tcp_dpp_tram.md +26 -0
- package/docs/processing/input_realtime_data/tcp_telmax_arriva_city.md +44 -0
- package/docs/processing/state_position_tracking/http_mpvnet.md +55 -0
- package/docs/{state_position_tracking/tcp_common.md → processing/state_position_tracking/tcp_dpp_common.md} +2 -14
- package/docs/{state_position_tracking/tcp_metro.md → processing/state_position_tracking/tcp_dpp_metro.md} +2 -9
- package/docs/processing/state_position_tracking/tcp_telmax_arriva_city.md +7 -0
- package/docs/processing/vehicle_types.md +32 -0
- package/package.json +2 -2
- package/dist/helpers/RedisJsonParser.d.ts +0 -21
- package/dist/helpers/RedisJsonParser.js +0 -57
- package/dist/helpers/RedisJsonParser.js.map +0 -1
- package/docs/state_position_tracking/http.md +0 -113
|
@@ -20,6 +20,7 @@ class VehiclePositionsController extends controllers_1.BaseController {
|
|
|
20
20
|
const dataBatches = this.splitData(inputData);
|
|
21
21
|
for (const batch of dataBatches) {
|
|
22
22
|
await this.sendMessageToExchange("input." + this.queuePrefix + ".saveDataToDB", JSON.stringify(batch), {
|
|
23
|
+
persistent: true,
|
|
23
24
|
timestamp: new Date().getTime(),
|
|
24
25
|
});
|
|
25
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VehiclePositionsController.js","sourceRoot":"","sources":["../../../src/input-gateway/vehicle-positions/VehiclePositionsController.ts"],"names":[],"mappings":";;;AAAA,kFAA0D;AAG1D,wEAAqE;AACrE,8EAA8E;AAC9E,8DAA6E;AAC7E,6EAA8F;AAC9F,mFAAkF;AAElF,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,MAAa,0BAA2B,SAAQ,4BAAc;IAM1D;QACI,KAAK,CACD,oCAAgB,CAAC,IAAI,EACrB,IAAI,uCAAmB,CAAC,oCAAgB,CAAC,IAAI,GAAG,YAAY,EAAE,oCAAgB,CAAC,oBAAoB,CAAC,CACvG,CAAC;QAMN;;WAEG;QACI,gBAAW,GAAG,KAAK,EAAE,SAA2B,EAAiB,EAAE;YACtE,IAAI;gBACA,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB;gBAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAC9C,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE;oBAC7B,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;wBACnG,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;qBAClC,CAAC,CAAC;iBACN;aACJ;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,GAAG,YAAY,qCAAoB,EAAE;oBACrC,MAAM,GAAG,CAAC;iBACb;qBAAM;oBACH,MAAM,IAAI,6BAAY,CAAC,oCAAoC,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;iBACrF;aACJ;QACL,CAAC,CAAC;QAEM,cAAS,GAAG,CAAC,IAAsB,EAAsB,EAAE;YAC/D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;aACjB;YAED,MAAM,MAAM,GAAuB,EAAE,CAAC;YACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE;gBAChF,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;gBAClD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;aACvC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"VehiclePositionsController.js","sourceRoot":"","sources":["../../../src/input-gateway/vehicle-positions/VehiclePositionsController.ts"],"names":[],"mappings":";;;AAAA,kFAA0D;AAG1D,wEAAqE;AACrE,8EAA8E;AAC9E,8DAA6E;AAC7E,6EAA8F;AAC9F,mFAAkF;AAElF,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,MAAa,0BAA2B,SAAQ,4BAAc;IAM1D;QACI,KAAK,CACD,oCAAgB,CAAC,IAAI,EACrB,IAAI,uCAAmB,CAAC,oCAAgB,CAAC,IAAI,GAAG,YAAY,EAAE,oCAAgB,CAAC,oBAAoB,CAAC,CACvG,CAAC;QAMN;;WAEG;QACI,gBAAW,GAAG,KAAK,EAAE,SAA2B,EAAiB,EAAE;YACtE,IAAI;gBACA,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB;gBAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAC9C,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE;oBAC7B,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;wBACnG,UAAU,EAAE,IAAI;wBAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;qBAClC,CAAC,CAAC;iBACN;aACJ;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,GAAG,YAAY,qCAAoB,EAAE;oBACrC,MAAM,GAAG,CAAC;iBACb;qBAAM;oBACH,MAAM,IAAI,6BAAY,CAAC,oCAAoC,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;iBACrF;aACJ;QACL,CAAC,CAAC;QAEM,cAAS,GAAG,CAAC,IAAsB,EAAsB,EAAE;YAC/D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;aACjB;YAED,MAAM,MAAM,GAAuB,EAAE,CAAC;YACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE;gBAChF,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;gBAClD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;aACvC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC;QAtCE,MAAM,MAAM,GAAG,2BAAqB,CAAC,OAAO,CAAgB,qBAAS,CAAC,YAAY,CAAC,CAAC;QACpF,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,4CAA4C,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/G,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;CAoCJ;AAlDD,gEAkDC"}
|
package/dist/integration-engine/ropid-gtfs/data-access/cache/DelayComputationRedisRepository.d.ts
CHANGED
|
@@ -2,11 +2,9 @@ import { IProcessedPositions, IRedisKeyExpiration, ITripPositionsWithGTFS } from
|
|
|
2
2
|
import { RedisModel } from "@golemio/core/dist/integration-engine/models/RedisModel";
|
|
3
3
|
export declare class DelayComputationRedisRepository extends RedisModel {
|
|
4
4
|
static NAMESPACE_PREFIX: string;
|
|
5
|
-
private logger;
|
|
6
5
|
constructor();
|
|
7
6
|
expire(keys: string[], ttlInSeconds: number): Promise<void>;
|
|
8
7
|
expirePxat(tripIdsWithTtl: IRedisKeyExpiration[]): Promise<void>;
|
|
9
8
|
cacheTripDataBatch(trips: ITripPositionsWithGTFS[], positions: IProcessedPositions[]): Promise<void>;
|
|
10
|
-
getTripPropertiesBatch<T extends object>(tripIds: string[], properties: Array<keyof T>): Promise<Array<T | null>>;
|
|
11
9
|
calculateExpirationTtl(positions: IProcessedPositions[], tripId: string): number;
|
|
12
10
|
}
|
package/dist/integration-engine/ropid-gtfs/data-access/cache/DelayComputationRedisRepository.js
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DelayComputationRedisRepository = void 0;
|
|
4
|
-
const RedisJsonParser_1 = require("../../../../helpers/RedisJsonParser");
|
|
5
|
-
const Di_1 = require("../../ioc/Di");
|
|
6
4
|
const DelayComputationDtoSchema_1 = require("../../../../schema-definitions/ropid-gtfs/redis/schemas/DelayComputationDtoSchema");
|
|
7
5
|
const const_1 = require("../../../../schema-definitions/vehicle-positions/redis/const");
|
|
8
|
-
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
9
6
|
const RedisModel_1 = require("@golemio/core/dist/integration-engine/models/RedisModel");
|
|
10
7
|
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
11
8
|
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
@@ -17,7 +14,6 @@ class DelayComputationRedisRepository extends RedisModel_1.RedisModel {
|
|
|
17
14
|
isKeyConstructedFromData: true,
|
|
18
15
|
prefix: DelayComputationRedisRepository.NAMESPACE_PREFIX,
|
|
19
16
|
}, new golemio_validator_1.JSONSchemaValidator("GTFSDelayComputationRedisRepositoryValidator", DelayComputationDtoSchema_1.DelayComputationDtoSchema));
|
|
20
|
-
this.logger = Di_1.RopidGtfsContainer.resolve(CoreToken_1.CoreToken.Logger);
|
|
21
17
|
}
|
|
22
18
|
async expire(keys, ttlInSeconds) {
|
|
23
19
|
const pipeline = this.connection.pipeline();
|
|
@@ -49,9 +45,7 @@ class DelayComputationRedisRepository extends RedisModel_1.RedisModel {
|
|
|
49
45
|
const pipeline = this.connection.pipeline();
|
|
50
46
|
for (const trip of trips) {
|
|
51
47
|
const expirationTtl = this.calculateExpirationTtl(positions, trip.id);
|
|
52
|
-
|
|
53
|
-
pipeline.call("JSON.SET", redisKey, "$", JSON.stringify(trip.gtfsData));
|
|
54
|
-
pipeline.pexpireat(redisKey, expirationTtl);
|
|
48
|
+
pipeline.set(`${DelayComputationRedisRepository.NAMESPACE_PREFIX}:${trip.gtfs_trip_id}`, JSON.stringify(trip.gtfsData), "PXAT", expirationTtl);
|
|
55
49
|
}
|
|
56
50
|
try {
|
|
57
51
|
await pipeline.exec();
|
|
@@ -60,47 +54,6 @@ class DelayComputationRedisRepository extends RedisModel_1.RedisModel {
|
|
|
60
54
|
throw new golemio_errors_1.GeneralError("Error while setting caches in Redis with pipeline", this.constructor.name, err);
|
|
61
55
|
}
|
|
62
56
|
}
|
|
63
|
-
async getTripPropertiesBatch(tripIds, properties) {
|
|
64
|
-
if (tripIds.length === 0) {
|
|
65
|
-
return [];
|
|
66
|
-
}
|
|
67
|
-
const pipeline = this.connection.pipeline();
|
|
68
|
-
for (const tripId of tripIds) {
|
|
69
|
-
const redisKey = `${this.prefix}:${tripId}`;
|
|
70
|
-
const propertyPaths = [];
|
|
71
|
-
for (const prop of properties) {
|
|
72
|
-
propertyPaths.push(`$.${String(prop)}`);
|
|
73
|
-
}
|
|
74
|
-
pipeline.call("JSON.GET", redisKey, ...propertyPaths);
|
|
75
|
-
}
|
|
76
|
-
try {
|
|
77
|
-
const responses = await pipeline.exec();
|
|
78
|
-
if (!responses) {
|
|
79
|
-
return tripIds.map(() => null);
|
|
80
|
-
}
|
|
81
|
-
const result = [];
|
|
82
|
-
for (let index = 0; index < responses.length; index++) {
|
|
83
|
-
const [error, redisResult] = responses[index];
|
|
84
|
-
if (error) {
|
|
85
|
-
this.logger.warn({
|
|
86
|
-
error,
|
|
87
|
-
result: redisResult,
|
|
88
|
-
}, `${this.constructor.name}: Failed to fetch trip '${tripIds[index]}' from Redis`);
|
|
89
|
-
result.push(null);
|
|
90
|
-
continue;
|
|
91
|
-
}
|
|
92
|
-
if (redisResult === null || redisResult === undefined) {
|
|
93
|
-
result.push(null);
|
|
94
|
-
continue;
|
|
95
|
-
}
|
|
96
|
-
result.push(RedisJsonParser_1.RedisJsonParser.parse(redisResult, this.constructor.name));
|
|
97
|
-
}
|
|
98
|
-
return result;
|
|
99
|
-
}
|
|
100
|
-
catch (err) {
|
|
101
|
-
throw new golemio_errors_1.GeneralError("Error while fetching trip properties batch from Redis", this.constructor.name, err);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
57
|
calculateExpirationTtl(positions, tripId) {
|
|
105
58
|
const now = new Date();
|
|
106
59
|
const expirationLimit = new Date(now.getTime() + 30 * 60 * 1000); // 30 minutes
|
package/dist/integration-engine/ropid-gtfs/data-access/cache/DelayComputationRedisRepository.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DelayComputationRedisRepository.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/data-access/cache/DelayComputationRedisRepository.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"DelayComputationRedisRepository.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/data-access/cache/DelayComputationRedisRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,8 +53,6 @@ export interface IShapeAnchorPoint {
|
|
|
53
53
|
export interface ISegmentShape extends IShape {
|
|
54
54
|
shape_at_stop: boolean;
|
|
55
55
|
}
|
|
56
|
-
export interface IComputationTripStopsAndAnchors extends Pick<IComputationTrip, "shapes_anchor_points" | "stop_times"> {
|
|
57
|
-
}
|
|
58
56
|
export interface IComputationTrip {
|
|
59
57
|
trip_id: string;
|
|
60
58
|
stop_times: IStopTime[];
|
|
@@ -66,7 +64,7 @@ export interface IRedisKeyExpiration {
|
|
|
66
64
|
expirationTtl: number;
|
|
67
65
|
}
|
|
68
66
|
export interface ITripPositionsWithOrWithoutGTFS {
|
|
69
|
-
gtfsData:
|
|
67
|
+
gtfsData: IComputationTrip | null;
|
|
70
68
|
id: string;
|
|
71
69
|
gtfs_trip_id: string;
|
|
72
70
|
gtfs_route_type: GTFSRouteTypeEnum;
|
|
@@ -88,8 +88,9 @@ class ProcessRegionalBusPositionsTask extends workers_1.AbstractTask {
|
|
|
88
88
|
let tripsPositionsWithGtfsData = [];
|
|
89
89
|
try {
|
|
90
90
|
const tripsPositionsToUpdate = await this.positionsRepository.getPositionsForUpdateDelay(tripIds);
|
|
91
|
-
gtfsComputationTrips =
|
|
92
|
-
|
|
91
|
+
gtfsComputationTrips = await this.delayComputationRedisRepository.mget(
|
|
92
|
+
// Append gtfs data from cache to each trip
|
|
93
|
+
tripsPositionsToUpdate.map((trip) => trip.gtfs_trip_id));
|
|
93
94
|
for (let i = 0; i < tripsPositionsToUpdate.length; i++) {
|
|
94
95
|
const trip = tripsPositionsToUpdate[i];
|
|
95
96
|
const gtfsData = gtfsComputationTrips[i];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProcessRegionalBusPositionsTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/ProcessRegionalBusPositionsTask.ts"],"names":[],"mappings":";;;AAAA,oFAAyE;AACzE,oEAAmF;AACnF,wCAA2D;AAC3D,oEAA8E;AAE9E,wEAAqE;AAErE,2FAAqF;AACrF,2EAA6E;AAC7E,6EAA8F;AAE9F,4EAAyE;AACzE,oEAAiE;AACjE,gFAA6E;
|
|
1
|
+
{"version":3,"file":"ProcessRegionalBusPositionsTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/ProcessRegionalBusPositionsTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropagateTrainDelayTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/PropagateTrainDelayTask.ts"],"names":[],"mappings":";;;AACA,sDAA2D;AAC3D,gGAAqF;AAErF,wEAAqE;AAErE,mEAAuF;AACvF,mEAAyD;AAGzD,mFAAqF;AACrF,sFAAmF;AAEnF,MAAa,uBAAwB,SAAQ,uDAAqD;IAU9F,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QAVP,cAAS,GAAG,qBAAqB,CAAC;QAClC,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QACtC,WAAM,GAAG,0DAA8B,CAAC;QAiEhD,sBAAiB,GAAG,KAAK,EAC7B,aAAiC,EACjC,eAAuB,EACI,EAAE;YAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;gBAC5C,UAAU,EAAE,CAAC,cAAc,CAAC;gBAC5B,KAAK,EAAE;oBACH,aAAa,EAAE,aAAa;oBAC5B,eAAe,EAAE,EAAE,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE;iBAChD;gBACD,KAAK,EAAE,CAAC,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;gBACnC,GAAG,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,OAAO,IAAI,EAAE,YAAY,CAAC;QAC9B,CAAC,CAAC;QAvEE,IAAI,CAAC,MAAM,GAAG,gCAA0B,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CAAC;QAC5E,IAAI,CAAC,oBAAoB,GAAG,uBAAkB,CAAC,OAAO,CAClD,iDAAuB,CAAC,yBAAyB,CACpD,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,gCAA0B,CAAC,OAAO,CAAgB,qBAAS,CAAC,YAAY,CAAC,CAAC;QACxF,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CACnD,sEAAsE,EACtE,CAAC,CACM,CAAC;IAChB,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,KAAgC;QACpD,KAAK,MAAM,gBAAgB,IAAI,KAAK,CAAC,IAAI,EAAE;YACvC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,2BAA2B,EAAE,eAAe,EAAE,aAAa,EAAE,GAC9F,gBAAgB,CAAC,IAAI,CAAC;YAC1B,IAAI;gBACA,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;gBAEpF,IAAI,CAAC,cAAc,EAAE;oBACjB,SAAS;iBACZ;gBACD,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAc,CAAC,CAAsB,CAAC;gBAEhG,MAAM,mBAAmB,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;gBACpF,MAAM,iBAAiB,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;gBACjF,MAAM,yBAAyB,GAC3B,mBAAmB,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC;gBAErF,MAAM,IAAI,CAAC,yBAAyB,CAAC;oBACjC,iBAAiB,EAAE,YAAY;oBAC/B,kBAAkB,EAAE,aAAa,IAAI,IAAI;oBACzC,sBAAsB,EAAE,gBAAgB,CAAC,QAAQ,CAAC,eAAe;oBACjE,YAAY,EAAE,gBAAgB,CAAC,QAAQ,CAAC,cAAc;oBACtD,yBAAyB,EAAE,2BAA2B;oBACtD,gBAAgB,EAAE,eAAe;oBACjC,cAAc,EAAE,aAAc;oBAC9B,cAAc,EAAE,gBAAgB,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"PropagateTrainDelayTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/PropagateTrainDelayTask.ts"],"names":[],"mappings":"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"}
|
package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateDelayTask.js
CHANGED
|
@@ -113,8 +113,9 @@ class UpdateDelayTask extends workers_1.AbstractTask {
|
|
|
113
113
|
let tripsPositionsWithGtfsData = [];
|
|
114
114
|
try {
|
|
115
115
|
const tripsPositionsToUpdate = await this.positionsRepository.getPositionsForUpdateDelay(tripIds);
|
|
116
|
-
gtfsComputationTrips =
|
|
117
|
-
|
|
116
|
+
gtfsComputationTrips = await this.delayComputationRedisRepository.mget(
|
|
117
|
+
// Append gtfs data from cache to each trip
|
|
118
|
+
tripsPositionsToUpdate.map((trip) => trip.gtfs_trip_id));
|
|
118
119
|
for (let i = 0; i < tripsPositionsToUpdate.length; i++) {
|
|
119
120
|
const trip = tripsPositionsToUpdate[i];
|
|
120
121
|
const gtfsData = gtfsComputationTrips[i];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateDelayTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateDelayTask.ts"],"names":[],"mappings":";;;AAAA,0EAA4D;AAC5D,4FAAiF;AACjF,oFAAyE;AACzE,oEAA8G;AAC9G,sDAA2D;AAC3D,gGAAqF;AACrF,wCAA2D;AAC3D,oEAA8E;AAE9E,wEAAqE;AAErE,2EAAwF;AACxF,2FAAqF;AACrF,2EAA6E;AAC7E,6EAA8F;AAE9F,4EAAyE;AACzE,oEAAiE;AACjE,gFAA6E;AAE7E,kEAA+D;AAC/D,gDAA6C;AAa7C,mEAA0E;AAC1E,qEAAkE;AAElE,MAAa,eAAgB,SAAQ,sBAA+B;IAehE,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QAfP,cAAS,GAAG,aAAa,CAAC;QAC1B,aAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;QACnC,WAAM,GAAG,+CAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"UpdateDelayTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateDelayTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,5 +6,5 @@ export declare class DelayComputationRepository implements IDelayComputationRepo
|
|
|
6
6
|
private redisConnector;
|
|
7
7
|
private log;
|
|
8
8
|
constructor(redisConnector: IoRedisConnector, log: ILogger);
|
|
9
|
-
|
|
9
|
+
getDelayComputationCache(gtfsTripId: string): Promise<IDelayComputationDto | null>;
|
|
10
10
|
}
|
|
@@ -13,7 +13,6 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.DelayComputationRepository = void 0;
|
|
16
|
-
const RedisJsonParser_1 = require("../../../../helpers/RedisJsonParser");
|
|
17
16
|
const const_1 = require("../../../../schema-definitions/vehicle-positions/redis/const");
|
|
18
17
|
const IoRedisConnector_1 = require("@golemio/core/dist/helpers/data-access/redis/IoRedisConnector");
|
|
19
18
|
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
@@ -25,22 +24,27 @@ let DelayComputationRepository = exports.DelayComputationRepository = class Dela
|
|
|
25
24
|
this.redisConnector = redisConnector;
|
|
26
25
|
this.log = log;
|
|
27
26
|
}
|
|
28
|
-
async
|
|
27
|
+
async getDelayComputationCache(gtfsTripId) {
|
|
29
28
|
if (!this.redisConnector.isConnected()) {
|
|
30
29
|
await this.redisConnector.connect();
|
|
31
30
|
}
|
|
32
|
-
const redisKey = `${const_1.GTFS_DELAY_COMPUTATION_NAMESPACE_PREFIX}:${gtfsTripId}`;
|
|
33
31
|
const connection = this.redisConnector.getConnection();
|
|
32
|
+
let delayComputationCache = null;
|
|
34
33
|
try {
|
|
35
|
-
|
|
36
|
-
if (!jsonResult) {
|
|
37
|
-
this.log.warn(`${this.constructor.name}: Property '${property}' not found in Redis key '${redisKey}'`);
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
return RedisJsonParser_1.RedisJsonParser.parseSingle(jsonResult, this.constructor.name, property);
|
|
34
|
+
delayComputationCache = await connection.get(`${const_1.GTFS_DELAY_COMPUTATION_NAMESPACE_PREFIX}:${gtfsTripId}`);
|
|
41
35
|
}
|
|
42
36
|
catch (err) {
|
|
43
|
-
throw new golemio_errors_1.GeneralError(`${this.constructor.name}:
|
|
37
|
+
throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot get delay computation cache from cache: ${err.message}`, this.constructor.name, err);
|
|
38
|
+
}
|
|
39
|
+
if (delayComputationCache === null) {
|
|
40
|
+
this.log.info(`${this.constructor.name}: Cannot find delay computation cache`);
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
return JSON.parse(delayComputationCache);
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
throw new golemio_errors_1.GeneralError(`${this.constructor.name}: Cannot parse delay computation cache: ${err.message}`, this.constructor.name, err);
|
|
44
48
|
}
|
|
45
49
|
}
|
|
46
50
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DelayComputationRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/data-access/redis/DelayComputationRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"DelayComputationRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/data-access/redis/DelayComputationRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,wFAA6F;AAC7F,oGAAiG;AACjG,wEAAqE;AAErE,+DAAuE;AACvE,6EAAwE;AACxE,iEAAwE;AAGjE,IAAM,0BAA0B,wCAAhC,MAAM,0BAA0B;IACnC,YACmD,cAAgC,EAC7C,GAAY;QADC,mBAAc,GAAd,cAAc,CAAkB;QAC7C,QAAG,GAAH,GAAG,CAAS;IAC/C,CAAC;IAEG,KAAK,CAAC,wBAAwB,CAAC,UAAkB;QACpD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE;YACpC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SACvC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QACvD,IAAI,qBAAqB,GAAkB,IAAI,CAAC;QAEhD,IAAI;YACA,qBAAqB,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,+CAAuC,IAAI,UAAU,EAAE,CAAC,CAAC;SAC5G;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,oDAAoD,GAAG,CAAC,OAAO,EAAE,EACzF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;SACL;QAED,IAAI,qBAAqB,KAAK,IAAI,EAAE;YAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,uCAAuC,CAAC,CAAC;YAC/E,OAAO,IAAI,CAAC;SACf;QAED,IAAI;YACA,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;SAC5C;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,6BAAY,CAClB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,2CAA2C,GAAG,CAAC,OAAO,EAAE,EAChF,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,CACN,CAAC;SACL;IACL,CAAC;CACJ,CAAA;qCAvCY,0BAA0B;IADtC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,cAAc,CAAC,CAAA;IACrC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCADsC,mCAAgB;GAF1E,0BAA0B,CAuCtC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { IDelayComputationDto } from "../../../../schema-definitions/ropid-gtfs/redis/interfaces/IDelayComputationDto";
|
|
2
2
|
export interface IDelayComputationRepository {
|
|
3
|
-
|
|
3
|
+
getDelayComputationCache(gtfsTripId: string): Promise<IDelayComputationDto | null>;
|
|
4
4
|
}
|
package/dist/output-gateway/public/service/helpers/trip-scope/strategy/ShapesTripScopeHandler.js
CHANGED
|
@@ -28,7 +28,7 @@ let ShapesTripScopeHandler = exports.ShapesTripScopeHandler = class ShapesTripSc
|
|
|
28
28
|
this.shapeModel = models_1.models.GTFSShapesModel;
|
|
29
29
|
}
|
|
30
30
|
async handle(output, vehiclePosition) {
|
|
31
|
-
const delayComputationCache = await this.delayComputationRepository.
|
|
31
|
+
const delayComputationCache = await this.delayComputationRepository.getDelayComputationCache(vehiclePosition.gtfs_trip_id);
|
|
32
32
|
if (!delayComputationCache) {
|
|
33
33
|
throw new golemio_errors_1.GeneralError("delay_computation_cache_not_found", this.constructor.name, undefined, 500);
|
|
34
34
|
}
|
package/dist/output-gateway/public/service/helpers/trip-scope/strategy/ShapesTripScopeHandler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShapesTripScopeHandler.js","sourceRoot":"","sources":["../../../../../../../src/output-gateway/public/service/helpers/trip-scope/strategy/ShapesTripScopeHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,iEAA6D;AAC7D,uHAA8H;AAC9H,6DAA+C;AAG/C,+DAAsF;AACtF,6EAAwE;AACxE,iEAAwE;AACxE,yFAAsF;AAG/E,IAAM,sBAAsB,oCAA5B,MAAM,sBAAuB,SAAQ,mEAAgC;IAIxE,YAC8D,0BAAuD;QAEjH,KAAK,EAAE,CAAC;QAFkD,+BAA0B,GAA1B,0BAA0B,CAA6B;QAGjH,IAAI,CAAC,wBAAwB,GAAG,IAAI,mEAAgC,EAAE,CAAC;QACvE,IAAI,CAAC,UAAU,GAAG,eAAM,CAAC,eAAe,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,MAA8B,EAAE,eAAmC;QACnF,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,
|
|
1
|
+
{"version":3,"file":"ShapesTripScopeHandler.js","sourceRoot":"","sources":["../../../../../../../src/output-gateway/public/service/helpers/trip-scope/strategy/ShapesTripScopeHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,iEAA6D;AAC7D,uHAA8H;AAC9H,6DAA+C;AAG/C,+DAAsF;AACtF,6EAAwE;AACxE,iEAAwE;AACxE,yFAAsF;AAG/E,IAAM,sBAAsB,oCAA5B,MAAM,sBAAuB,SAAQ,mEAAgC;IAIxE,YAC8D,0BAAuD;QAEjH,KAAK,EAAE,CAAC;QAFkD,+BAA0B,GAA1B,0BAA0B,CAA6B;QAGjH,IAAI,CAAC,wBAAwB,GAAG,IAAI,mEAAgC,EAAE,CAAC;QACvE,IAAI,CAAC,UAAU,GAAG,eAAM,CAAC,eAAe,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,MAA8B,EAAE,eAAmC;QACnF,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,wBAAwB,CACxF,eAAe,CAAC,YAAY,CAC/B,CAAC;QAEF,IAAI,CAAC,qBAAqB,EAAE;YACxB,MAAM,IAAI,6BAAY,CAAC,mCAAmC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;SACtG;QAED,MAAM,CAAC,MAAM,GAAG,IAAA,mCAA6B,EACzC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CACjH,CAAC;QAEF,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ,CAAA;iCA3BY,sBAAsB;IADlC,IAAA,qBAAU,GAAE;IAMJ,WAAA,IAAA,iBAAM,EAAC,6BAAa,CAAC,0BAA0B,CAAC,CAAA;;GAL5C,sBAAsB,CA2BlC"}
|
package/dist/output-gateway/public/service/helpers/trip-scope/strategy/StopTimesTripScopeHandler.js
CHANGED
|
@@ -28,7 +28,7 @@ let StopTimesTripScopeHandler = exports.StopTimesTripScopeHandler = class StopTi
|
|
|
28
28
|
this.tripStopTimesTransformation = new PublicVPTripStopTimesTransformation_1.PublicVPTripStopTimesTransformation();
|
|
29
29
|
}
|
|
30
30
|
async handle(output, vehiclePosition) {
|
|
31
|
-
const delayComputationCache = await this.delayComputationRepository.
|
|
31
|
+
const delayComputationCache = await this.delayComputationRepository.getDelayComputationCache(vehiclePosition.gtfs_trip_id);
|
|
32
32
|
if (!delayComputationCache) {
|
|
33
33
|
throw new golemio_errors_1.GeneralError("delay_computation_cache_not_found", this.constructor.name, undefined, 500);
|
|
34
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StopTimesTripScopeHandler.js","sourceRoot":"","sources":["../../../../../../../src/output-gateway/public/service/helpers/trip-scope/strategy/StopTimesTripScopeHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAMA,iEAA6D;AAC7D,6HAAoI;AAGpI,+DAAsF;AAEtF,6EAAwE;AACxE,2DAA2D;AAC3D,iEAAwE;AACxE,yFAAsF;AAG/E,IAAM,yBAAyB,uCAA/B,MAAM,yBAA0B,SAAQ,mEAAgC;IAG3E,YAC8D,0BAAuD,EACzD,kBAAuC;QAE/F,KAAK,EAAE,CAAC;QAHkD,+BAA0B,GAA1B,0BAA0B,CAA6B;QACzD,uBAAkB,GAAlB,kBAAkB,CAAqB;QAG/F,IAAI,CAAC,2BAA2B,GAAG,IAAI,yEAAmC,EAAE,CAAC;IACjF,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,MAA8B,EAAE,eAAmC;QACnF,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,
|
|
1
|
+
{"version":3,"file":"StopTimesTripScopeHandler.js","sourceRoot":"","sources":["../../../../../../../src/output-gateway/public/service/helpers/trip-scope/strategy/StopTimesTripScopeHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# In-memory cache
|
|
2
|
+
|
|
3
|
+
- Cachování v paměti instance služby
|
|
4
|
+
- Nejdříve se načtou data z PSQL, následně si instance služby data drží v paměti
|
|
5
|
+
- Variabilní nebo žádné TTL (tedy pro obnovení dat je nutné službu/instanci/pod restartovat)
|
|
6
|
+
- Vhodné pro data, která se často nemění, ale zároveň se nevyplatí je ukládat do Redisu
|
|
7
|
+
|
|
8
|
+
## Kolejové obvody
|
|
9
|
+
|
|
10
|
+
- Třída [CachedMetroRailTrackLookup](../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/metro/CachedMetroRailtrackLookup.ts)
|
|
11
|
+
- Využití v rámci procesování metro zpráv manipulací shape anchor pointů na trase pro přesnější určení stavu vozidla (`on_track` X `at_stop`) a zpoždění na příjezdu/odjezdu do/ze zastávky
|
|
12
|
+
- Viz [MetroShapePointsFixer](../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/metro/MetroShapePointsFixer.ts)
|
|
13
|
+
- TTL žádné
|
|
14
|
+
- :warning: Dříve se nové kolejové obvody načítaly podle potřeby ROPIDu (zpravidla 2x za rok), takže současný způsob cachování byl v pořádku. Nyní se načítají každý den spolu s JŘ stažením z Blob Storage (kde si soubor ROPIDu spravuje sám), takže je absence TTL kvůli neaktualizaci dat problematická (neaktuálnost kolejových obvodů a špatné určení stavu vozidla, případně zpoždění v zastávce), je potřeba to řešit jinak
|
|
15
|
+
|
|
16
|
+
```mermaid
|
|
17
|
+
flowchart TB;
|
|
18
|
+
initial[Příjem zprávy, zpárování s GTFS, uložení do DB]-->amqp_updateDelay[AMQP updateDelay];
|
|
19
|
+
amqp_updateDelay--select-->trips[(PSQL trips)];
|
|
20
|
+
amqp_updateDelay--select-->positions[(PSQL positions)];
|
|
21
|
+
|
|
22
|
+
trips--Anchor pointy neexistují-->anchor_points_new[Vytvoření anchor points podle GTFS shapes];
|
|
23
|
+
positions--Anchor pointy neexistují-->anchor_points_new;
|
|
24
|
+
trips--Anchor pointy existují-->anchor_points_exist[Načtení anchor points z Redisu];
|
|
25
|
+
positions--Anchor pointy existují-->anchor_points_exist;
|
|
26
|
+
|
|
27
|
+
anchor_points_new-->fixer[MetroShapePointsFixer];
|
|
28
|
+
fixer-->lookup[CachedMetroRailTrackLookup];
|
|
29
|
+
lookup--select pokud cache miss<-->railtrack[(PSQL metro railtrack data)];
|
|
30
|
+
lookup-->save_anchor_points[Uložení anchor points do Redisu];
|
|
31
|
+
save_anchor_points-->continue[Pokračování ve zpracování zprávy];
|
|
32
|
+
|
|
33
|
+
anchor_points_exist-->continue;
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Popisky vozidel
|
|
37
|
+
|
|
38
|
+
- Třída [VehicleDescriptorCachedRepository](../../../src/output-gateway/public/data-access/VehicleDescriptorCachedRepository.ts)
|
|
39
|
+
- Využití v rámci:
|
|
40
|
+
- Public VP detailu pro získání dodatečných informací o konkrétním vozidle na trase (pokud si uživatel vyžádá `scope[]=vehicle_descriptor`)
|
|
41
|
+
- Public odjezdů pro získání dodatečných informací (USB nabíječky, klimatizace) o vozidle na každém odjezdu z vybraných zastávek, pokud už víme, které vozidlo daný spoj obsluhuje
|
|
42
|
+
- TTL 4 hodiny
|
|
43
|
+
- Data stahujeme 2x denně, takže současný způsob cachování teď ničemu úplně nevadí
|
|
44
|
+
|
|
45
|
+
```mermaid
|
|
46
|
+
flowchart TB;
|
|
47
|
+
api_request_vp[GET /v2/public/vehiclepositions/$vehicle_id]-->process_vp[Zpracování API requestu];
|
|
48
|
+
api_request_departures[GET /v2/public/departureboards]-->process_departures[Zpracování API requestu];
|
|
49
|
+
|
|
50
|
+
process_vp--uživatel vyžádal vehicle_descriptor-->descriptor_repository[VehicleDescriptorCachedRepository];
|
|
51
|
+
process_vp--uživatel nevyžádal vehicle_descriptor-->continue[Pokračování ve zpracování];
|
|
52
|
+
|
|
53
|
+
process_departures--známe vozidlo k odjezdu-->descriptor_repository;
|
|
54
|
+
process_departures--neznáme vozidlo k odjezdu-->continue;
|
|
55
|
+
|
|
56
|
+
descriptor_repository--select pokud cache miss<-->descriptors[(PSQL vehicle descriptors)];
|
|
57
|
+
descriptor_repository-->continue;
|
|
58
|
+
```
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# PostgreSQL cache
|
|
2
|
+
|
|
3
|
+
- V současnosti cachujeme pouze kontext k danému RT spoji - tedy stav vozidla/spoje po poslední zpracované zprávě
|
|
4
|
+
- Nemusíme tedy dotahovat předchozí pozice z DB, ale veškeré informace máme ve sloupci `last_position_context` v tabulce `vehicle_positions_trips`
|
|
5
|
+
- Uložen jako JSON objekt s variabilními daty a atributy - v závislosti na stavu vozidla/spoje některé atributy chybí nebo jsou prázdné/null
|
|
6
|
+
- Pokud se jedná o první pozici na spoji, pak všechny atributy kromě `tripId` budou null a nepovinné atributy můžou chybět
|
|
7
|
+
- Aktuální interface viz [IVPTripsLastPositionContext](../../../src/schema-definitions/vehicle-positions/models/interfaces/VPTripsLastPositionInterfaces.ts)
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
interface IVPTripsLastPositionContext {
|
|
11
|
+
lastPositionId: string | null;
|
|
12
|
+
lastPositionLat?: number | null;
|
|
13
|
+
lastPositionLng?: number | null;
|
|
14
|
+
lastPositionOriginTimestamp: number | null;
|
|
15
|
+
lastPositionTracking: Feature<Point, IVPTripsPositionAttributes> | null;
|
|
16
|
+
lastPositionCanceled: boolean | null;
|
|
17
|
+
lastPositionLastStop: {
|
|
18
|
+
id: string | null;
|
|
19
|
+
sequence: number | null;
|
|
20
|
+
arrival_time: number | null;
|
|
21
|
+
arrival_delay: number | null;
|
|
22
|
+
departure_time: number | null;
|
|
23
|
+
departure_delay: number | null;
|
|
24
|
+
};
|
|
25
|
+
lastPositionDelay: number | null;
|
|
26
|
+
atStopStreak: IVPTripsComputedPositionAtStopStreak;
|
|
27
|
+
lastPositionBeforeTrackDelayed: {
|
|
28
|
+
delay: number | null;
|
|
29
|
+
origin_timestamp: Date;
|
|
30
|
+
} | null;
|
|
31
|
+
lastPositionState: StatePositionEnum | null;
|
|
32
|
+
lastStopSequence?: number | null;
|
|
33
|
+
lastPositionStateChange: string | null;
|
|
34
|
+
tripId: string;
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
- **lastPositionId** - ID poslední pozice, koresponduje ID záznamu v tabulce `vehiclepositions_positions`
|
|
39
|
+
- _poznámka_: využití během aktualizace tripu v databázi (lze nahradit přímo pozicí). Rovněž se využívá během propagace zpoždění
|
|
40
|
+
- **lastPositionLat** - poslední známá zeměpisná šířka vozidla
|
|
41
|
+
- _poznámka_: nepoužívá se a může být null, pokud je spoj zrušen a nepodařilo se zjistit poslední známou polohu
|
|
42
|
+
- **lastPositionLng** - poslední známá zeměpisná délka vozidla
|
|
43
|
+
- _poznámka_: nepoužívá se a může být null, pokud je spoj zrušen a nepodařilo se zjistit poslední známou polohu
|
|
44
|
+
- **lastPositionOriginTimestamp** - `origin_timestamp` poslední pozice (timestamp odeslání zprávy z vozidla)
|
|
45
|
+
- _poznámka_: využití během propagace zpoždění a určení duplikovaných zpráv. :warning: unix timestamp v milisekundách
|
|
46
|
+
- **lastPositionTracking** - pokud je poslední pozice tracked, pak je zde uložena jako GeoJSON objekt, jinak null
|
|
47
|
+
- _poznámka_: využití během určení stavu vozidla jedoucího z/do garáže, projetí poslední zastávky a ujeté trasy `shape_dist_traveled` a azimutu u propagované pozice
|
|
48
|
+
- **lastPositionCanceled** - indikátor, zda byl spoj předchozí zprávou deklarován jako zrušený
|
|
49
|
+
- _poznámka_: využití během aktualizace tripu v databázi. Zbytečné a lze nahradit stavem pozice
|
|
50
|
+
- **lastPositionLastStop** - informace o poslední zastávce, kterou vozidlo projelo
|
|
51
|
+
- _poznámka_: využití pouze pro výpočet zpoždění na zastávce
|
|
52
|
+
- **id** - GTFS ID zastávky. V současnosti je vždy null a nepoužívá se
|
|
53
|
+
- **sequence** - pořadí zastávky v rámci GTFS stop times
|
|
54
|
+
- **arrival_time** - čas příjezdu na zastávku podle GTFS
|
|
55
|
+
- **arrival_delay** - vypočítané zpoždění příjezdu na zastávku oproti GTFS v sekundách
|
|
56
|
+
- **departure_time** - čas odjezdu ze zastávky podle GTFS
|
|
57
|
+
- **departure_delay** - vypočítané zpoždění odjezdu ze zastávky oproti GTFS v sekundách
|
|
58
|
+
- **lastPositionDelay** - poslední vypočítané zpoždění vozidla na spoji
|
|
59
|
+
- _poznámka_: využití pouze pro výpočet zpoždění na zastávce
|
|
60
|
+
- **atStopStreak** - informace o délce pobytu vozidla na zastávce
|
|
61
|
+
- _poznámka_: využití pro přesnější určení zpoždění vozidla během pobytu na zastávce a taky pro výpočet zpoždění během příjezdu a odjezdu na zastávku
|
|
62
|
+
- **firstPositionTimestamp** - timestamp první pozice na zastávce
|
|
63
|
+
- **firstPositionDelay** - zpoždění v sekundách během první pozice na zastávce. Liší se od zpoždění během příjezdu na zastávku, které se počítá jinak
|
|
64
|
+
- **stop_sequence** - pořadí zastávky v rámci GTFS stop times
|
|
65
|
+
- **lastPositionBeforeTrackDelayed** - dodatečné informace o poslední pozici
|
|
66
|
+
- _poznámka_: vyplněno pouze v případě, že poslední pozice spoje byla zpropagována z předchozího spoje na oběhu, jinak null. Využití pro určení zpozdění vozidla a taky pro určení stavu vozidla jedoucího z/do garáže
|
|
67
|
+
- **delay** - zpoždění poslední pozice oproti GTFS v sekundách
|
|
68
|
+
- **origin_timestamp** - timestamp poslední pozice (timestamp odeslání zprávy z vozidla)
|
|
69
|
+
- **lastPositionState** - stav vozidla během poslední pozice
|
|
70
|
+
- _poznámka_: využití pro určení stavu a správné určení segmentu trasy (mezi jakými zastávkami se vozidlo nachází, díky tomu přesnější zpoždění vozidla)
|
|
71
|
+
- **lastStopSequence** - pořadí poslední projeté zastávky v rámci GTFS stop times
|
|
72
|
+
- _poznámka_: využití během určení, zda se vozidlo navrátilo na trase zpět
|
|
73
|
+
- **lastPositionStateChange** - timestamp poslední změny stavu vozidla
|
|
74
|
+
- _poznámka_: využití pro určení stavu vozidla a zda se má vůbec vypočítat zpoždění
|
|
75
|
+
- **tripId** - RT ID spoje, ke kterému se kontext vztahuje. Koresponduje ID záznamu v tabulce `vehiclepositions_trips`
|
|
76
|
+
- _poznámka_: využití během aktualizace tripu v databázi. Zbytečné, šlo by udělat lépe
|