@golemio/rush-hour-aggregation 1.6.1-dev.2950443814 → 1.6.1-dev.2972798168
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
CHANGED
|
@@ -57,7 +57,7 @@ This module aggregates traffic data for Praha dopravní project. It takes differ
|
|
|
57
57
|
|
|
58
58
|
## Current setup
|
|
59
59
|
|
|
60
|
-
Every 5 minutes worker starts and for each datasource
|
|
60
|
+
Every 5 minutes worker starts and for each datasource aggregation is run and timeseries data are updated. The source of SDDR no longer receives data (the last data are from 28. 2. 2022), so its aggregation writes records without measured values for the current time.
|
|
61
61
|
|
|
62
62
|
## Aggregation of older data
|
|
63
63
|
|
|
@@ -88,4 +88,4 @@ _updateOnDuplicate_ - Optional setting for situation when upgrade of already agg
|
|
|
88
88
|
|
|
89
89
|
_refreshView_ - Optional setting to refresh latest materialized view. Possible values "true", "false". Default value is false. (Note: automatic 5 minute updates have the setting to true)
|
|
90
90
|
|
|
91
|
-
To initiate automatic 5 minute aggregation manually it is possible to send empty message. The empty message sends a separate message for each of the types FCD, NDIC, WAZEJ
|
|
91
|
+
To initiate automatic 5 minute aggregation manually it is possible to send empty message. The empty message sends a separate message for each of the types FCD, NDIC, WAZEJ, WAZER and SDDR.
|
|
@@ -40,6 +40,7 @@ let AggregateDataTask = class AggregateDataTask extends integration_engine_1.Abs
|
|
|
40
40
|
AggregationTaskType_1.AggregationTaskType.NDIC,
|
|
41
41
|
AggregationTaskType_1.AggregationTaskType.WAZEJ,
|
|
42
42
|
AggregationTaskType_1.AggregationTaskType.WAZER,
|
|
43
|
+
AggregationTaskType_1.AggregationTaskType.SDDR,
|
|
43
44
|
];
|
|
44
45
|
this.scheduledAggregationIntervalInMinutes = 10;
|
|
45
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AggregateDataTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/task/AggregateDataTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,qFAA2D;AAC3D,+CAAkE;AAClE,mGAA8F;AAE9F,sEAA4C;AAC5C,iGAAuE;AACvE,wEAAqE;AAErE,8EAAmF;AACnF,6EAAwE;AACxE,2DAAqE;AACrE,iEAAwE;AAGxE,yFAAsF;AAW/E,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,iCAAqC;
|
|
1
|
+
{"version":3,"file":"AggregateDataTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/task/AggregateDataTask.ts"],"names":[],"mappings":"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"}
|
package/docs/asyncapi.yaml
CHANGED
|
@@ -19,7 +19,7 @@ operations:
|
|
|
19
19
|
channels:
|
|
20
20
|
rush-hour-aggregation.aggregateData:
|
|
21
21
|
address: dataplatform.rush-hour-aggregation.aggregateData
|
|
22
|
-
description: Aggregate traffic data of a given type from a given time period to database. If the given time period contains too much data, the task will be split into multiple subtasks. An empty message sends a separate message to this queue for each of the types FCD, NDIC, WAZEJ and
|
|
22
|
+
description: Aggregate traffic data of a given type from a given time period to database. If the given time period contains too much data, the task will be split into multiple subtasks. An empty message sends a separate message to this queue for each of the types FCD, NDIC, WAZEJ, WAZER and SDDR with the time period of the last 10 minutes.
|
|
23
23
|
bindings:
|
|
24
24
|
amqp:
|
|
25
25
|
is: queue
|
|
@@ -15,7 +15,7 @@ Vstupem jsou 4 datové sady již existující v datové platformě:
|
|
|
15
15
|
|
|
16
16
|
### Data aktivně stahujeme
|
|
17
17
|
|
|
18
|
-
Data se aktivně agregují pomocí cronu každých 5 minut. Kvůli možnému zpoždění obdržení některých dat je nastaven překryv a dohromady agreguje se posledních 10 minut. Existující položky jsou aktualizovaný na nový stav. Pravidelně se agregují typy FCD, NDIC, WAZEJ a
|
|
18
|
+
Data se aktivně agregují pomocí cronu každých 5 minut. Kvůli možnému zpoždění obdržení některých dat je nastaven překryv a dohromady agreguje se posledních 10 minut. Existující položky jsou aktualizovaný na nový stav. Pravidelně se agregují typy FCD, NDIC, WAZEJ, WAZER a SDDŘ. Zdroj SDDŘ už nedostává nová data, jeho agregace proto zapisuje záznamy bez naměřených hodnot pro aktuální čas. Pro cron je nastavena priorita 5, pro VIP odbavení oproti historické agregaci viz níže.
|
|
19
19
|
|
|
20
20
|
Příklad nastavení cronu:
|
|
21
21
|
```json
|
|
@@ -59,7 +59,7 @@ Interní RabbitMQ fronty jsou popsány v [AsyncAPI](./asyncapi.yaml).
|
|
|
59
59
|
Podporuje několik scénářů zpracovaní podle obdržené zprávy:
|
|
60
60
|
|
|
61
61
|
1) Prázdná zpráva
|
|
62
|
-
Je obvykle generována cronem. Pro každý pravidelně agregovaný typ (FCD, NDIC, WAZEJ, WAZER) pošle do stejné fronty samostatnou zprávu s obdobím posledních X minut dle nastavení workeru. V současnosti je tato hodnota nastavena na 10 minut. Každý typ tak běží jako samostatná úloha s vlastním timeoutem a pomalý typ neblokuje ostatní. Rozeslané zprávy i subtasky přebírají prioritu příchozí zprávy, takže pravidelná agregace (cron s prioritou 5) má dál přednost před historickou agregací.
|
|
62
|
+
Je obvykle generována cronem. Pro každý pravidelně agregovaný typ (FCD, NDIC, WAZEJ, WAZER, SDDŘ) pošle do stejné fronty samostatnou zprávu s obdobím posledních X minut dle nastavení workeru. V současnosti je tato hodnota nastavena na 10 minut. Každý typ tak běží jako samostatná úloha s vlastním timeoutem a pomalý typ neblokuje ostatní. Rozeslané zprávy i subtasky přebírají prioritu příchozí zprávy, takže pravidelná agregace (cron s prioritou 5) má dál přednost před historickou agregací.
|
|
63
63
|
|
|
64
64
|
2) Validní json zpráva
|
|
65
65
|
Validní json zpráva obsahuje údaje od, do a typ dat (v angličtině). Pro příklad zprávy viz readme modulu. Následně je zkontrolovano zda-li období zpracování není příliš dlouhé. Pro každý typ vstupních dat je toto období určeno jinak, dle množství generovaných dat a náročnosti zpracování:
|
package/package.json
CHANGED