dataoperations-aggregate 0.0.3 → 0.0.5
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.
- checksums.yaml +4 -4
- data/lib/dataoperations-aggregate.rb +12 -10
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 641acf44ae266d4790320ae506cc968b20fe9fdcbc63b7fb50b0cb41c13a77b6
|
4
|
+
data.tar.gz: adeed75be0d03687fa1700e3ee5c8048885a904b0e8ad5667969328e8a4472a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b7f039bc8f7046051a8150576eb6a29ba10edb6287251bd0980a211eecec41b69bcda10dde9cf8d920f5dcf07c7be1752b2b211dda5419f7fd7c5686cfd0195
|
7
|
+
data.tar.gz: 12f5981b5fc696c4cb0b36a68dd38a5ad814085bf8f3aded30cfb2e2446607f0971a6adc9220cb29f3615ca44a9673c8dcac18f8d825bd1a28755bdb4e92a3cd
|
@@ -72,6 +72,7 @@ module DataOperations
|
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
75
|
+
@aggregator_mutex = Mutex.new
|
75
76
|
# TODO:
|
76
77
|
# - Duplicate intervals - Done
|
77
78
|
# - Sort intervals - Done
|
@@ -116,14 +117,14 @@ module DataOperations
|
|
116
117
|
aggregator_item['aggregate_fields'] = aggregate_detail
|
117
118
|
aggregator_item['intervals'] = interval_detail
|
118
119
|
|
119
|
-
@aggregator[hash_group_key] = aggregator_item
|
120
|
+
@aggregator_mutex.synchronize {@aggregator[hash_group_key] = aggregator_item}
|
120
121
|
end
|
121
122
|
|
122
123
|
if !aggregator_item['aggregate_fields'].key?(aggregator_hash_key)
|
123
124
|
hash_aggregator = {}
|
124
125
|
hash_aggregator[:time_started] = Time.now.to_i
|
125
126
|
hash_aggregator['processed'] = 1
|
126
|
-
aggregator_item['aggregate_fields'][aggregator_hash_key] = hash_aggregator
|
127
|
+
@aggregator_mutex.synchronize {aggregator_item['aggregate_fields'][aggregator_hash_key] = hash_aggregator}
|
127
128
|
else
|
128
129
|
aggregator_item['aggregate_fields'][aggregator_hash_key]['processed'] += 1
|
129
130
|
end
|
@@ -150,14 +151,15 @@ module DataOperations
|
|
150
151
|
aggregate_data = {}
|
151
152
|
|
152
153
|
# @log.debug @aggregator
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
154
|
+
@aggregator_mutex.synchronize do
|
155
|
+
current_time = Time.now.to_i
|
156
|
+
@aggregator.each do |group_item_key, group_item_value|
|
157
|
+
aggregate_first_interval(aggregate_data, current_time, group_item_value)
|
158
|
+
|
159
|
+
# Calculate subsecuents aggregations
|
160
|
+
group_item_value['intervals'].keys[1..-1].each do |s_interval|
|
161
|
+
aggregate_subsequents_intervals(aggregate_data, current_time, group_item_value, s_interval)
|
162
|
+
end
|
161
163
|
end
|
162
164
|
end
|
163
165
|
|